Php 无法为重写的URL传递查询字符串值
我正努力在网站上实现URL更改。首先,我只想在子目录级别实现这个URL更改。。我在根目录下安装了WordPress,但我正在创建一个自定义分类广告部分。它位于目录/classifieds/中。因此,我只想重写此子目录中的URL 我已经成功地按照需要为classifieds子目录进行了正确的重写,并为SEO添加了301和尾部斜杠。我遇到的唯一问题是,我的任何页面都没有传递查询字符串值。如何修改下面的.htaccess代码,使其能够在页面之间传递查询字符串Php 无法为重写的URL传递查询字符串值,php,.htaccess,query-string,Php,.htaccess,Query String,我正努力在网站上实现URL更改。首先,我只想在子目录级别实现这个URL更改。。我在根目录下安装了WordPress,但我正在创建一个自定义分类广告部分。它位于目录/classifieds/中。因此,我只想重写此子目录中的URL 我已经成功地按照需要为classifieds子目录进行了正确的重写,并为SEO添加了301和尾部斜杠。我遇到的唯一问题是,我的任何页面都没有传递查询字符串值。如何修改下面的.htaccess代码,使其能够在页面之间传递查询字符串 IndexIgnore * Rewrit
IndexIgnore *
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php$ http://www.mysite.com/classifieds/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ http://www.mysite.com/classifieds/$1/ [R=301,L]
redirect 301 /classifieds/index/ http://www.mysite.com/classifieds/
提前感谢您的帮助 您需要添加
[QSA]
查询字符串附加
编辑
重写规则^([^/]+/)*[^.]+).php$$1[R=301,L,QSA]
及
重写规则(.*)$$1/[R=301,L,QSA]如果我理解正确,您希望查询字符串在多个页面中保持不变,对吗?如果是这样,我知道的唯一方法就是输出页面上的所有链接,并附加查询字符串,这意味着这将在PHP文件中完成
要做到这一点,您的链接应该在url末尾附加
urlencode($\u GET)
。我是一个初学者,您能告诉我代码中哪些行需要添加[QSQ]吗请…我尝试了您的建议,但仍然遇到困难。添加[QSA]后,我得到以下URL输出:Ian,[QSA]有何帮助?当替换字符串包含?…
抱歉,我认为这就是问题所在时,所有这一切都是为了指示重写引擎附加现有的查询字符串。我现在要回家了,但如果没有其他人解决这个问题,我明天会再看一次it@ianbarker非常感谢如果你能再看一眼,我尝试的每件事似乎都会破坏其他东西。再次感谢!能否提供一个不传递查询字符串的URL示例