繁体   English   中英

mod_rewrite添加完整目录

[英]mod_rewrite adding full directory

我有一个.htaccess文件来控制我的Apache服务器。 开启RewriteEngine后,我有一条重写规则可以正常工作:

RewriteRule ^display\.php/([a-zA-Z0-9-z\-]+)$ "https://pastelink.net/display?q=$1" [R=301,L]

在下一行中,我尝试添加另一个规则,以将sitemap.xml重定向到sitemap.php。

我都尝试过:

RewriteRule ^sitemap.xml$ "https://pastelink.net/sitemap.php" [R=301, L]

RewriteRule ^sitemap.xml sitemap.php [R=301, L]

以及其他组合,包括或省略^ $和标志。 每次的结果都是对此的重写:

https://pastelink.net/home/pastelin/public_html/sitemap.php

当我的意图是:

https://pastelink.net/sitemap.php

为什么将这些额外的目录添加到URL中? 我看不出为什么它的行为与第一个重写规则不同。 如果有帮助,我可以发布整个.htaccess文件,尽管L标志应该使后面的代码无关紧要。

您不需要http://获得无声重写规则。 保持根.htaccess如下:

RewriteEngine On
RewriteBase /

RewriteRule ^display\.php/([\w-]+)/?$ https://pastelink.net/display?q=$1 [R=301,L,QSA,NC]
RewriteRule ^sitemap\.xml$ sitemap.php [NC,L]

在测试这些更改之前,您应该清除浏览器缓存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM