2011-11-16 12 views
0

私は次のように.htaccessファイルを持っています。..some.com/designit/portfolio-website-nature?page = 2 inplace。 COM/designit // portfolio.php?猫=ウェブサイト& SUBCAT =自然?= 2 BTページでは私はそれを見せたい..some.com/designit /ポートフォリオ/ウェブサイト/自然/ PAGE2として" - "を "/"に置き換えてURLの名前を変更します。

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z0-9_.\ ]+)$ $1.php [QSA] 
RewriteRule ^portfolio-([a-zA-Z0-9_.\ ]+)$ portfolio.php?cat=$1 [QSA] 
RewriteRule ^portfolio-([a-zA-Z0-9_.\ ]+)-([a-zA-Z0-9.\-\ ]+)$ portfolio.php?cat=$1&subcat=$2 [QSA] 
#RewriteRule ^portfolio-([a-zA-Z0-9_.\ ]+)-([a-zA-Z0-9.\ ]+)-([0-9]+)$ portfolio.php?cat=$1&subcat=$2&page=$3 [QSA] 
#RewriteRule ^portfolio-([a-zA-Z0-9_.\ ]+)-([0-9]+)$ portfolio.php?cat=$1&page=$2 [QSA] 
#RewriteRule ^portfolio-([0-9]+)$ portfolio.php?page=$2 [QSA] 
RewriteRule ^projects-([a-zA-Z0-9_.\ ]+)$ portfolio_details.php?id=$1 [QSA] 

マイ主な問題は、 " - "を "/"に置き換えることです。助けてください。


私はOS-WINDOWS、WAMPSERVERのApacheのバージョン2.2.17を使用して、私は私がすでにwritten.when私はあなたのコードを実行しているdesignitのfolder.codeで.htaccessファイルがあり、カテゴリ名のページをクリックしていますslyte、js、images.butとは違うページが動作していて、URLは "http:// localhost/designitt/portfolio/categoryname"です。再び同じリンクをクリックするか、別のカテゴリをクリックするとURLが次のように表示されます。 "http:// localhost/designitt/portfolio/portfolio/categoryname"もう一度同じリンクをクリックすると "http:// localhost/designitt/portfolio/portfolio/portfolio/categoryname"になります。私は時間を得るときに私。

答えて

0

原理は基本的には次のとおりです、 "cat=aa"、 "subcat=bb" "page=cc" :URLは、 "ポートフォリオ/ AA/BB/CC" のようなものであるならば、あなたは、これはparamsは追加する必要が

  • URLが「portfolio/aa/bb」の場合は、「cat=aa」「subcat=bb
  • のようにURLが「portfolio/aa」の場合は、このパラメータを追加する必要があります。 cat=aa "

これは次のように仕事ができる:これが動作するかどうか

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z0-9_.\ ]+)$ $1.php [QSA] 
RewriteRule ^portfolio/([a-zA-Z0-9_.\ ]+)/([a-zA-Z0-9_.\ ]+)/([0-9]+) /portfolio.php?cat=$1&subcat=$2&page=$3 [QSA] 
RewriteRule ^portfolio/([a-zA-Z0-9_.\ ]+)/([a-zA-Z0-9_.\ ]+) /portfolio.php?cat=$1&subcat=$2 [QSA] 
RewriteRule ^portfolio/([a-zA-Z0-9_.\ ]+) /portfolio.php?cat=$1 [QSA] 
RewriteRule ^projects/([a-zA-Z0-9_.\ ]+)$ /portfolio_details.php?id=$1 [QSA] 

を教えてください。


RewriteLogディレクティブを使用してみてください:それは、このような問題を追跡するのに役立ちます:

# Trace: 
# (!) file gets big quickly, remove in prod environments: 
RewriteLog "/web/logs/mywebsite.rewrite.log" 
RewriteLogLevel 9 
RewriteEngine On 

それが動作するかどうかを教えてください。

+0

こんにちは、このコードをお試しいただきありがとうございます。ページは表示されていますが、css、js、images anything.inはFirebug css、js、画像は "http://localhost/designit/portfolio/images/logo.png"のパスを示しています。ここで正しいパスは " http://localhost/designit/images/logo.png "。何をすればいいですか?問題を解決するために私を助けてください。 –

+0

私はしたいですが(1)私はあなたのお手伝いをしません。私の自由な時間に私は自由な時間をたくさん持っていませんでした。(2)設定の多くの情報を与えなければなりません:これらの仮想ホストはありますか?ダイレクトサーバー設定? htaccessファイル?どのOS:Apple、Linux、M ---? –

+0

私はWAMPSERVER apacheバージョン2.2.17、OS-WINDOWSを使用していますが、私は既にあなたのコードを実行してカテゴリ名をクリックして書いたwrite.whenを書いたdesignit folder.codeの.htaccessファイルを持っています。そのページはslyte、 js、images.butページが動作していて、URLは "http:// localhost/designitt/portfolio/categoryname"です。再度同じリンクをクリックするか、別のカテゴリをクリックすると、URLは "http:// localhost/designitt/portfolio/portfolio/categoryname "再び同じリンクをクリックすると" http:// localhost/designitt/portfolio/portfolio/portfolio/categoryname "になります。 –

関連する問題