[英]RewriteRule Not Working in .htaccess file
我正在尝试更改我网站的 URL 以仅显示 ID,但它似乎不起作用...
我不知道为什么.. RewriteRule 的其他命令运行良好.. 实际上 .htaccess 文件看起来像 belove
RewriteEngine On
RewriteRule ^/?([0-9a-zA-Z-]+)/$ article.php?articleId=$1 [L]
我希望它像这样工作:Old_URL(修改): mywebsite.it/article.php?articleId=15
?articleId=15
我想要这样的东西: mywebsite.it/article/15
但 URL 实际上保持不变:始终显示:
mywebsite.it/article.php?articleId=15
在此先感谢您的帮助:)
内部重写永远不会改变浏览器中可见的 URL。 您可能正在寻找外部重定向。 或者更好地结合两者:
RewriteEngine On
# externally redirect old URL
RewriteCond %{QUERY_STRING} (?:^|&)articleId=(\d+)(?:&|$)
RewriteRule ^/?article/?$ /article/%1 [R=301,L]
# internally rewrite new URL
RewriteRule ^/?article/(\d+)/?$ /article.php?articleId=$1 [END]
这些规则旨在在顶层实施。 最好在实际的 http 服务器的主机配置中。 如果您无权访问它,那么位于主机的DOCUMENT_ROOT
中的分布式配置文件将起作用(“.htaccess”),但需要启用对此的支持。
开始使用R=302
临时重定向是个好主意,只有在您对工作方式感到满意后才将其更改为R=301
永久重定向。 这样可以防止客户端出现缓存问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.