2011-07-04 17 views
0

.htaccessファイルを設定しようとしています。どのように私はこの結果を得るに行くか:.htaccess RewriteRule domain.com/page/page to domain.com?p=page/page

要求:domain.com/page/page

書き換えること:domain.com/index.php?p=page/page

私が試してみた:

RewriteRule ^(.*)$ index.php?p=$1 [L,QSA] 

運で。

+0

ページが読み込まれますが、奇妙に見えますが、スタイルシートが正しく読み込まれていない可能性がありますか?私は本当にわからない。 – Undefined

+0

スラッシュを追加してください:RewriteRule^/(。*)$ index.php?p = $ 1 [L、QSA] ロードはOKですが、ページが機能しません。 – Undefined

+0

RewriteRule ^(。*)$ /index.php?p=$1 500サーバーエラー。 – Undefined

答えて

1

わかりました。私は2つのルールが必要:

RewriteRule ^([a-zA-Z0-9_\\s-]+)(/)?$ index.php?p=$1 
RewriteRule ^([a-zA-Z0-9_\\s-]+)/([a-zA-Z0-9_\\s-]+)(/)?$ index.php?p=$1/$2 

だけ

RewriteRule ^([a-zA-Z0-9_\\s-]+)(/)?$ index.php?p=$1 

でdomain.com/no1/がdomain.com/index.php?p=no1に変換しまうので、私のPHPスクリプトがそれを好きではなかったです/ < ---終了スラッシュを理解していません

このソリューションの問題は、2つの仮想ディレクトリにしか行きませんが、それだけで十分です。 これは私の初めての.htaccess使用ですので、私の理解が不足して申し訳ありません。

0

は、あなたの.htaccessファイルにこのコードを試してみてください。

Options +FollowSymlinks -MultiViews 
RewriteEngine On 

RewriteRule ^(?!index\.php)(.*)$ /index.php?p=$1 [L,NC,QSA] 

否定先読みがここに無限ループを回避します。

+0

それはうまくいった。 RewriteRule ^([a-zA-Z0-9_ \] - )+)$ index.php?p = $ 1 RewriteRule ^([a-zA-Z0-9_ \ \ s - ] +)/([a-zA-Z0-9 _ \\ s - ] +)(/)?$ index.php?p = $ 1/$ 2 私のPHPスクリプトは、 RewriteRule ^([a-zA-Z0-9 _ \\ s - ] +)(/)?$ index.php?p = $ 1 domain.com/no1/ domain.com/index.phpに変換されます。 ?p = no1/<---最後のスラッシュを理解できません このソリューションの問題は、2つの仮想ディレクトリだけが深くなっていることですが、それだけで十分です。 これは私の初めての.htaccess使用ですので、私の理解が不足して申し訳ありません。 – Undefined