.htaccess 如何使用htaccess将文件扩展名sitemap.php更改为sitemap.xml

1aaf6o9v  于 2022-11-30  发布在  PHP
关注(0)|答案(2)|浏览(208)

如果我写网址domain.com/something-any-word网站运行正常。但我需要一个XML格式的网站Map,所以我写PHP代码在sitemap.php。我想在运行时sitemap.xml(参考网站是https://www.webslesson.info/2017/06/make-dynamic-xml-sitemap-in-php-script.html
我当前的.htaccess文件在没有sitemap.xml的情况下工作

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
jslywgbw

jslywgbw1#

只需根据需要将请求重写为该站点Map即可:

RewriteEngine On

RewriteEngine ^/?sitemap\.xml$ /sitemap.php [END]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

如果收到内部服务器错误(http status 500)使用上面的规则,那么很可能你操作的是一个非常旧版本的apache http服务器。在这种情况下,你会在http服务器的错误日志文件中看到一个明确的提示,一个不受支持的[END]标志。你可以尝试升级或使用旧的[L]标志,在这种情况下它可能会起同样的作用,不过这取决于您的设置。

svujldwt

svujldwt2#

If you want sitemap.php to runtime show sitemap.xml and you want yourdomain.com/something-without-ext write this code in .htacces file

RewriteEngine On
RewriteRule ^sitemap\.xml$ sitemap.php [L]
RewriteRule ^sitemap$ sitemap.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]

相关问题