【问题标题】:Url rewriting using .htaccess gives 404 NOT FOUND使用 .htaccess 重写 URL 会导致 404 NOT FOUND
【发布时间】:2016-12-20 18:03:51
【问题描述】:

这是我的 htaccess 文件

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.in$
RewriteRule ^/?$ "https\:\/\/www\.mysite\.in\/" [R=301,L]


RewriteRule \.(css|jpeg|gif|png|js|ico|img|chat)$ - [L]
RewriteRule ^detail/(css|js|img)/(.*)?$ /$1/$2 [L,QSA,R=301]

#RewriteRule ^$ index.php?name=kal

RewriteRule ^([a-zA-Z0-9]+)$ index.php?name=$1
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?name=$1

RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)$ index.php?name=$1&place=$2
RewriteRule ^([a-zA-Z0-9]+)/([a-zA-Z0-9]+)/$ index.php?name=$1&place=$2

当我请求 https://www.mysite.in/myname/myplace 它工作正常

但是当我请求 https://www.mysite.in/myname-n-m/myplace 时,它给出了 404 Error not found

基本上我的第一个参数会有 - (其中有连字符),有什么解决方案吗?

【问题讨论】:

    标签: javascript php apache .htaccess mod-rewrite


    【解决方案1】:

    重写规则包含:[a-zA-Z0-9]+,即:字母+数字。所以将其更改为:[a-zA-Z0-9\-]+ 也包括连字符

    【讨论】:

      【解决方案2】:

      你试过这样吗……

      RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)$ index.php?name=$1&place=$2
      

      【讨论】:

        猜你喜欢
        • 2018-06-02
        • 2019-12-10
        • 2014-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多