0

特定のホストでしか機能しないため、.htaccess に何か問題があります。

書き換え規則を使用しようとします。

http://example.com/p/page_nameすべてのホストで動作しますが、何かを追加しようとするpage_nameと動作しません。

.htaccess

Options +FollowSymLinks
RewriteEngine on

RewriteRule p/(.*)$ index.php?page=$1
RewriteRule p/portfolio/([0-9]+)$ p/portfolio&id=$1 

最後の行は常に機能するとは限りません。

4

2 に答える 2

0

p/portfolio&id=$1アンパサンドは疑問符にすべきではありませんか?

于 2012-12-20T22:27:12.770 に答える
0

2つのルールを再配置する必要があります。現在、正規表現の最初のルールは、のp/(.*)$ようなリクエストを含むすべてのリクエストを取得することです/p/portfolio/1234567。また、^URIの先頭に一致する文字を追加して、より正確にしLQSAフラグを使用することもできます。

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^p/portfolio/([0-9]+)$ /p/portfolio?id=$1 [L,QSA]
RewriteRule ^p/(.*)$ index.php?page=$1 [L,QSA]

または、両方のルールを1つに一般化することもできます。

RewriteRule ^p/([^/]+)(/([0-9]+))?$ /index.php?page=$1&id=$3 [L,QSA]
于 2012-12-20T23:19:59.863 に答える