繁体   English   中英

RewriteRule 在 .htaccess 文件中不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM