【问题标题】:Url Rewrite doesn't work on apache server godaddyUrl Rewrite 在 apache 服务器 godaddy 上不起作用
【发布时间】:2018-05-27 06:05:59
【问题描述】:

我在 Godaddy 网络服务器上托管我的网站,我尝试使用 htaccess 文件重写一些 url,但它不起作用。非常感谢您的帮助。

基本上我想替换如下网址:

/photographers/photographer.php?id=1&name=john-doe

在:

/photographer/john-doe

显然我也希望我的服务器以相反的方式在内部重定向。

我在我的 .htaccess 中尝试了以下代码。

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule    ^photographer/([A-Za-z-]+)/?$ photographers/photographer.php?id=$2&name=$1 [NC,L]

【问题讨论】:

    标签: php apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    没有身份证你不能这样做。

    在url中添加id:

    /photographer/john-doe/1
    

    还有那个 .htaccess:

    Options +FollowSymLinks -MultiViews
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^photographer/([A-Za-z-]+)/(\d+)/?$ photographers/photographer.php?id=$2&name=$1 [NC,L]
    

    【讨论】:

    • 谢谢。我试过了,但还是不行。服务器还有其他不喜欢的东西。
    【解决方案2】:

    您需要使用查询字符串附加标志 (QSA)

    Options +FollowSymLinks -MultiViews
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^photographer/([A-Za-z-]+)/?$ photographers/photographer.php?id=$2&name=$1 [QSA,NC,L]
    

    您也可以尝试删除 RewriteBase 行,看看是否也有帮助。

    【讨论】:

      【解决方案3】:

      试试这个。只有一行:)

      RewriteRule ^(photographer)/(.*)$ /photographers/photographer.php?id=1&name=$2 [L]
      

      【讨论】:

        猜你喜欢
        • 2018-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-12-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多