【问题标题】:Htaccess rewrite rule doesn't matchHtaccess 重写规则不匹配
【发布时间】:2015-08-26 20:45:22
【问题描述】:

我正在开发一个自定义 CMS,在 htaccess 文件中,我有这一行:

RewriteRule ^([a-z]{2})/(press)/[^\\_]*_([0-9]+)\\.html$ ./FO/scripts/myScript.php?id=$3&lang=$1 [L,QSA]

如果直接在 url 中检查http://mywebsite.com/website/FO/scripts/myScript.php?id=4521&lang=en,没关系,我的脚本运行良好。

但我不知道如何激活规则,我尝试了:http://mywebsite.com/website/en/press/4521.html 但没有效果。

你对基本 URL 有什么想法来匹配这个规则吗?

谢谢!

编辑:或者忘记website folder,比如http://mywebsite.com/en/press/4521.html

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    您的正则表达式似乎不正确。在您的.htaccess 中使用此规则:

    RewriteEngine On
    
    RewriteRule ^([a-z]{2})/press/([0-9]+)\.html$ FO/scripts/myScript.php?id=$2&lang=$1 [L,QSA,NC]
    

    【讨论】:

    • 可能忘记了网站文件夹.. 我无法添加这个 RewriteBase 我的 htaccess 中有很多规则
    • 在这种情况下,只需从您的 htaccess 中取出 RewriteBase
    • 如果我想在规则中添加我的网站文件夹,是否像 RewriteRule ^website/([a-z]{2})/press/.....?
    • 是的,没错。 RewriteRule ^website/([a-z]{2})/press/([0-9]+)\.html$ website/FO/scripts/myScript.php?id=$2&lang=$1 [L,QSA,NC]
    • 我的 url 是 mydomain/website/en/press/1810.html 但总是无效...我删除了所有规则,所以这个规则是我 htaccess 中唯一的一个...
    猜你喜欢
    • 2015-09-24
    • 1970-01-01
    • 2018-02-01
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多