Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 无法为重写的URL传递查询字符串值_Php_.htaccess_Query String - Fatal编程技术网

Php 无法为重写的URL传递查询字符串值

Php 无法为重写的URL传递查询字符串值,php,.htaccess,query-string,Php,.htaccess,Query String,我正努力在网站上实现URL更改。首先,我只想在子目录级别实现这个URL更改。。我在根目录下安装了WordPress,但我正在创建一个自定义分类广告部分。它位于目录/classifieds/中。因此,我只想重写此子目录中的URL 我已经成功地按照需要为classifieds子目录进行了正确的重写,并为SEO添加了301和尾部斜杠。我遇到的唯一问题是,我的任何页面都没有传递查询字符串值。如何修改下面的.htaccess代码,使其能够在页面之间传递查询字符串 IndexIgnore * Rewrit

我正努力在网站上实现URL更改。首先,我只想在子目录级别实现这个URL更改。。我在根目录下安装了WordPress,但我正在创建一个自定义分类广告部分。它位于目录/classifieds/中。因此,我只想重写此子目录中的URL

我已经成功地按照需要为classifieds子目录进行了正确的重写,并为SEO添加了301和尾部斜杠。我遇到的唯一问题是,我的任何页面都没有传递查询字符串值。如何修改下面的.htaccess代码,使其能够在页面之间传递查询字符串

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示例