【问题标题】:Mod_Rewrite for URL with multiple variables具有多个变量的 URL 的 Mod_Rewrite
【发布时间】:2013-08-06 15:48:52
【问题描述】:

我的 .htaccess 中有以下代码

重写规则 ^([a-zA-Z0-9_-]+)/?$ index.php?mode=$1&%{QUERY_STRING})

它适用于一个变量,但我想传递一些额外的变量,并希望它们像第一个变量一样。因此,我没有 /about/?anotherVar=extra,而是拥有 /about/extra。附加变量将在某些页面上,而不是全部

我现在有:

#<IfModule mod_rewrite.c>

#   RewriteEngine on
#    RewriteCond %{REQUEST_FILENAME} !-f
#    RewriteCond %{REQUEST_FILENAME} !-d

#</IfModule>


Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?mode=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?mode=$1&productContent=$2 [QSA]

【问题讨论】:

    标签: variables mod-rewrite mask


    【解决方案1】:
    RewriteRule ^([a-zA-Z0-9_-]+)/?$ index.php?mode=$1 [QSA]
    RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ index.php?mode=$1&anotherVar=$2 [QSA]
    

    PS QSA 替换了&amp;%{QUERY_STRING}

    【讨论】:

    • 所以我需要用我的替换“anotherVar”?
    • 我试过了,但它似乎不想工作。以下工作: /products?productContent=oliveOil 但如果我尝试将其更改为 /products/oliveOil 那么它将无法工作。
    • 我应该更清楚一点。它可以工作并加载我的页面,但我丢失了部分页面。我在索引页面上使用了 并且 mode 变量将内容信息加载到 template.php 中。当我将 /oliveOil 添加到 URL 时,它会加载正确的页面,但不会加载 template.php。有没有解决方案,还是我必须坚持在 URL 中使用 /products?productContent=oliveOil?
    • 我修好了!!这不是 template.php 的问题,而是我的所有图像和 css 链接都是问题所在。在前面添加了域名,一切都很好。谢谢。
    • 我同意并且我通常这样做,但是当我有根相对 url 时它不起作用。我也必须使用该域。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-01
    • 1970-01-01
    • 2016-01-22
    相关资源
    最近更新 更多