.htaccess 如何重定向或重写带有问号和标签的url?
我想通过.htaccess 如何重定向或重写带有问号和标签的url?,.htaccess,url-rewriting,url-redirection,.htaccess,Url Rewriting,Url Redirection,我想通过.htaccess文件重定向或重写以前的站点URL到相关的新站点URL 出于某些其他原因,这已经在.htaccess文件中,下面的代码如下: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRul
.htaccess
文件重定向或重写以前的站点URL到相关的新站点URL
出于某些其他原因,这已经在.htaccess
文件中,下面的代码如下:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
到
要进行此重定向或重写,我不知道要在
.htaccess
文件中添加什么?A1:应该能够使用通常的:
A2:这是
#part
的简短答案-这是不可能的。但不是因为apachehttpd的行为
#
后面的部分在中称为片段。用户代理(又名浏览器)永远不会发送它,您的服务器也永远不会收到带有片段的URI/URL
用户代理负责解析片段():
作为
这样,片段标识符就不会在特定于方案的代码中使用
URI的处理;相反,片段标识符是分开的
在取消引用之前,从URI的其余部分
片段本身中的标识信息被取消引用
仅由用户代理执行,而不考虑URI方案
- 使用从开始到结束的
仅将查询字符串与RewriteCond
匹配来捕获查询字符串李>pages/oldpage
- 使用
匹配RewriteRule
,即请求的URI
然后将其重定向到中的
http://www.example.com/index.php?pages/oldpageindex.php
,这实际上是/newpage
使用丢弃查询字符串http://www.example.com/newpage
RewriteCond %{QUERY_STRING} pages/oldpage
RewriteRule ^(.*)$ http://www.example.com/newpage/? [R=301,L]
再次感谢大家的帮助是否需要片段标识符(在
#
之后的部分)来标识要重定向到的页面?还是只需要查询字符串pages/oldpage
?OP的示例中还包含一个查询字符串。感谢您的回复。我在没有标签的页面上检查了给定的重写规则。但旧的一页被重新书写。我做错什么了吗?添加一些描述可能会helpful@Swanand更新。谢谢。那么,“标签”到底没有什么意义?这看起来和什么是一样的?
http://www.example.com/newpage/
RewriteCond %{QUERY_STRING} ^pages/oldpage$
RewriteRule ^/index\.php /newpage/?
RewriteCond %{QUERY_STRING} ^pages/oldpage$
RewriteRule ^index\.php /newpage [QSD]
RewriteCond %{QUERY_STRING} pages/oldpage
RewriteRule ^(.*)$ http://www.example.com/newpage/? [R=301,L]