【问题标题】:.htaccess multi URL rewriting.htaccess 多 URL 重写
【发布时间】:2012-10-03 08:45:52
【问题描述】:

我有这个规则:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ profil.php?upime=$1

它正在工作。现在我想知道如何重写另一个页面的URL:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ profil.php?upime=$1
RewriteRule ^(.*)$ novica.php?nid=$2 - I did this, but is not working.

我该怎么做才能在一个.htaccess 文件中同时拥有这两个规则?

【问题讨论】:

    标签: php .htaccess url url-rewriting rewrite


    【解决方案1】:

    在重写所有内容时,您不能像示例中那样做:^(.*)$

    如果您需要两个不同的规则,则需要选择要写入的最终目的地的 url。

    一个例子,你重写以不同字符串开头的不同 url 到不同的目的地:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^starts_with_this(.*)$ profil.php?upime=$1
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^starts_with_something_else(.*)$ novica.php?nid=$1
    

    【讨论】:

    • 但是我必须在你写starts_with_this和starts_with_something_else的地方写什么?
    • @user1726756 这取决于您希望您的网址是什么样子,例如可以是profil/novica/。顺便说一句,您可以以第三条规则结束,该规则会重写尚未重写的所有其他内容。
    • 但是等等——如果我写例如profil/novica/,那么我的css设计就不起作用了——我需要创建一个文件夹profil/novica/然后复制内部设计?
    • @user1726756 有不同的方法,但我总是为我的资产(图像、css、js)使用绝对路径来避免这个问题。
    • @user1726756 不客气。如果对您有用,请不要忘记将答案标记为已接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 2011-08-30
    • 2011-03-19
    • 2022-01-18
    相关资源
    最近更新 更多