-1

我正在尝试在我的网站上使用干净的 url 以获得更好的 SEO。我这样做是使用带有 htaccess 的 mod 重写。网址如下http://mywebsite.com/s.php?share=100,我想接受类似http://mywebsite.com/s/100或用户选择的任何数字的网址。我正在使用这个重写正则表达式,但它没有按预期工作

   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME}!-f
   RewriteCond %{REQUEST_FILENAME}!-d
   RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php 
   RewriteRule ^share/([^/]*)$ /s.php?share=$1 [L]

谁能指出我做错了什么?

4

1 回答 1

0

您希望您的 URL 看起来像http://mywebsite.com/s/100,这意味着 URI 是/s/100,但您的模式看起来像^share/([^/]*)$。由于 URI 不以“ share ”开头,因此该模式永远不会匹配您想要的 URI。尝试:

RewriteRule ^s/([^/]*)$ /s.php?share=$1 [L]

此外,由于您正在请求/s/并有一个名为 的文件/s.php,因此您需要确保Multiviews已关闭:

Options -Multiviews

总而言之,类似:

Options -Multiviews

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}!-f
RewriteCond %{REQUEST_FILENAME}!-d
RewriteRule ^([a-z]+)/([a-z\-]+)$ /$1/$2.php 
RewriteRule ^s/([^/]*)$ /s.php?share=$1 [L]
于 2013-08-13T03:09:11.657 回答