【发布时间】:2023-04-03 17:40:01
【问题描述】:
我“只是”尝试像
一样转换 URL[AWEBSITE]/bgh/articles/10/08/2009/left-4-dead-2-scavenge-mode-announced
到
[AWEBSITE]/bgh/left-4-dead-2-scavenge-mode-announced
正则表达式匹配正确(使用http://www.regular-expressions.info/javascriptexample.html 测试),但没有发生任何事情。我尝试了类似的规则,改用 RedirectMatch 301:
RedirectMatch 301 ^/bgh/articles/([0-9]{2})/([0-9]{2})/([0-9]{4})/([^/]+)$ /bgh/$4?
并且 URL 转换正确,但留下一个“?”在末尾。如果我从该行中删除问号,它会正确转换 URL,但会在末尾重新附加一个查询字符串。这是我在 .htaccess 中使用的内容:
AddType application/x-httpd-php53 .php
RewriteEngine on
RewriteRule ^bgh/articles/([0-9]{2})/([0-9]{2})/([0-9]{4})/(.*)$ bgh/$4
RewriteCond %{HTTP_HOST} ^awebsite\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.awebsite\.com$
RewriteRule ^/?$ "http\:\/\/www\.awebsite\.com\/bgh"
AddHandler application/x-httpd-php5 .html
另外,我正在使用 Drupal 和似乎是旧版本的 Apache(例如,QSD 标志破坏了我的 .htaccess)。我正在拔头发,我希望这里缺少一些非常简单的东西。
【问题讨论】:
标签: php apache .htaccess mod-rewrite drupal