【问题标题】:php get variable clean url htaccessphp 获取变量清理 url htaccess
【发布时间】:2013-03-04 23:39:04
【问题描述】:

我有一些用于 WordPress 网站的自定义 PHP 页面。我想通过 GET 方法使用具有几个变量的干净 URL。我已经搜索并尝试了我的 htaccess 代码的不同变体以及下面的 WordPress htaccess 代码,但没有成功。

我希望用户浏览和使用的 URL 是 www.thedomain.com/thefolder/details/123456/RES,而不是 www.thedomain.com/thefolder/details.php?mls=123456&ret=RES

我已将代码放在根目录的 htaccess 文件中。我也在 details.php 文件所在目录的 htaccess 中自己尝试过。

RewriteEngine On

## WordPress code
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ./ /index.php [L]

## my code
RewriteBase /thefolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9]+)$ details.php?mls=$1&ret=$2
RewriteRule ^([a-zA-Z0-9]+)/$ details.php?mls=$1&ret=$2

【问题讨论】:

    标签: php wordpress url-rewriting


    【解决方案1】:

    您可以将 QSA 添加到 RewriteRule 标志:

    RewriteRule {from-url} {to-url} [L,NC,QSA]

    RewriteRule page_([0-9]+)\.html page.php?id=$1 [QSA]
    

    将 page_1.html?a=2 重定向到 page.php?id=1&a=2

    但是,请注意,因为请求 page_1.html?id=2 将重定向到 page.php?id=1&id=2,并且(在 PHP 中)$_GET['id'] 将为 2。

    【讨论】:

    • 将重定向 page_1.html?a=2... - 你确定RewriteRule 重定向
    • 测试一下,如果它不起作用,您可以就您的体验提供反馈。这样我们就可以处理重定向直到它正常工作
    • 嘿我想说RewriteRule不会重定向,它只是重写了url。
    • 您的意思是它重写但不调用所需的页面,或者您希望页面重定向到不同的页面。请让我明白这一点。谢谢
    • @OmniPotens - 尝试了将 [QSA] 添加到两个 RewriteRule 行末尾的建议,但没有奏效。尝试浏览 www.thedomain.com/thefolder/details/123456/RES 时,出现找不到页面错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-05-27
    • 2014-06-22
    • 2017-02-06
    • 1970-01-01
    • 2013-01-03
    • 2015-10-08
    相关资源
    最近更新 更多