2017-01-27 4 views
0

同じ問題が同じ週前に既に助けを求められていましたが、実際には解決策が得られませんでした。htaccessを使ってスラッシュを使ってphp urlを再構築する

だから私は

website.com/proj1/post.php?id=130 

のようなURLを見て持っていますが、私は

website.com/proj1/post/130 

に見えるようにURLを再構築したいと考察した後、男は、以下のhtaccessのルール

を使用することが提案
RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule^- [L] 

RewriteCond %{DOCUMENT_ROOT}/proj1/$1.php -f 
RewriteRule ^([\w-]+)/([\w-]+)/?$ $1.php?id=$2 [L,QSA] 

RewriteCond %{DOCUMENT_ROOT}/proj1/$1.php -f 
RewriteRule ^([^.]+?)/?$ $1.php [L] 

彼は自分の環境で働いていたと言いましたが、私はxamppや私の本当のサーバー?

コードが動作することを確認できますか?なぜそれが私のために働かないかもしれないか考えているのですか?

ちょうど記録のために、私はhtaccessファイルを "proj1"というフォルダに配置しているので、ルートの下にはありません。

+2

疑問符とパラメータをスラッシュに置き換える可能性があります(http://stackoverflow.com/questions/4143 9512/php-url-replace-question-mark-and-parameter-with-slash) – codeaviator

答えて

0

誤ったバックプレイングとRewriteCondsを使用しているため、rewriteRuleが正しく表示されません。あなたが/proj1/postの固定パス接頭辞を持っている場合は、次のPROJ1でルール/ .htaccessの

RewriteEngine on 


RewriteRule ^post/([^/.]+)/?$ /proj1/post.php?id=$1 [L] 
+0

あなたはそれが働いた人ですが、小さな問題の1つはページのすべてのリンクがpost/images/icon.pngにリンクしていることです。画像がwebiste.com/porj1/imagesからフェッチされ、webiste.com/porj1/post/imagesに変更された場合を意味します。この副作用を排除する方法はありますか? – pabloBar

0

を使用することができ、それは数をキャプチャし、置換

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^post/(.+)$ /proj1/post.php?id=$1 [L] 

両方の場合で、その番号を使用するのに十分ですポスト番号が可変であれば、別々に各部分をキャプチャする必要があります。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+?)/(.+)$ /proj1/$1.php?id=$2 [L] 
+0

.htaccessは/ proj1にあり、ルートにはありません。 – starkeen

+0

ええ、それをテストしましたが、私は動作しないと思う:/ – pabloBar

+0

@starkeenありがとう、私はそれを逃した –

関連する問題