.htaccess仅适用于某些webhost

时间:2012-12-20 22:16:49

标签: .htaccess

我的.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 

最后一行并不总是有效。

2 个答案:

答案 0 :(得分:0)

p/portfolio&id=$1&符号不应该成为问号吗?

答案 1 :(得分: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]

或者,您可以将两个规则概括为一个:

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