【问题标题】:.htaccess rewriteEngine with multiple get variables.htaccess rewriteEngine 具有多个获取变量
【发布时间】:2014-04-01 21:23:46
【问题描述】:

有没有办法用多个变量改变一个url,例如这个url:

index.php?p=place&c=Munich

到:

/place/munich

使用 .htaccess?

【问题讨论】:

    标签: php regex apache .htaccess mod-rewrite


    【解决方案1】:

    您可以在 root .htaccess 中使用此规则:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?p=$1&c=$2 [L,QSA]
    

    【讨论】:

    • 啊,是的,您的脚本运行良好,但现在我的应用程序中没有一个链接是正确的。有没有办法从 .htaccess 中解决这个问题?
    • 我的意思是当我打开新网址时,整个应用程序中没有一个链接是正确的:D sry
    • 哦,我的规则中有一个错字,我现在已经更正了。你能再试一次吗。还要确保在您的 css、js、图像文件中使用使用绝对路径,而不是相对路径。这意味着您必须确保这些文件的路径以 http:// 或斜杠 / 开头
    • 是的,我发现了问题,包含完整 http 路径的变量存在错误。现在它工作正常。谢谢
    • 很高兴知道,您能否通过单击我的答案左上角的勾号将答案标记为已接受。
    【解决方案2】:

    根据这两个参数包含的字符,这里有一个仅用于字母(a-zA-Z):

    RewriteRule ^([a-zA-Z]+)/([a-zA-Z]+)$ index.php?p=$1&c=$2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 1970-01-01
      • 2020-08-24
      • 2015-12-31
      相关资源
      最近更新 更多