我有以下重写规则:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} Catalog\/(string|page)\/
RewriteRule ^Catalog\/(string|page)\/([^\/]+)\/[^\.]+\.html$ Catalog/Catalog.php?$1=$2
RewriteRule在一行上,但可能在这里显示多行。
我的问题主要是我做错了什么。我没有收到任何错误,所以Rewrite正在工作。我在浏览器中输入的地址是www.domain.com/Catalog/string/RT/Round_Tomato.html
,而我希望获得的地址是www.domain.com/Catalog/Catalog.php?string=RT
我猜我的正则表达式搞砸了,但一直没能做到。
答案 0 :(得分:1)
我认为第一个错误的事情就是在没有反斜杠之前加点(。)=>万维网。
^www\.([^/])/Catalog/([a-zA-Z0-9]+)/([a-zA-Z0-9_]+).html$ www.$1/Catalog/Catalog.php?string=$2
这是一个明显的例子:
RewriteRule ^ http://www.remotesite.com/(。*)$ / remotesite / $ 1
的/反射镜/
http://httpd.apache.org/docs/2.0/misc/rewriteguide.html
检查一下:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteRule ^Catalog/(.+)/(.+)\.html$ /Catalog/Catalog.php?$1=$2
你应该重启你的apache服务器 - 如果它是本地服务器 - (启动和停止)你必须能够访问http://localhost/Catalog/string/RT.html