我在让我的 .htaccess ReWrite 在我的 apache Web 服务器上工作时遇到了很多麻烦。我已经阅读了几个教程并测试了我与 Grep 匹配的正则表达式。
这是代码:
RewriteRule \?action=viewArticle&articleId=([0-9]*)&categoryId=([0-9])$ essays/$1 [R=301,L]
这是我要匹配的网址:
http://mysite.com/?action=viewArticle&articleId=15&categoryId=1
并更改为
http://mysite.com/essays/15
更新:解决方案!Jon提供了非常出色的教程。我放入<base href="/">
头文件以使 css 正常工作非常重要。
最终重写看起来像这样:
RewriteCond %{THE_REQUEST} /?action=viewArticle&articleId=([0-9]*)&categoryId=([0-9])
RewriteRule ^$ /essays/%1? [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^essays/([0-9]+) /?action=viewArticle&articleId=$1&categoryId=([0-9]) [L]