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

.htaccess 如何使用htaccess将文件扩展名sitemap.php更改为sitemap.xml,.htaccess,.htaccess,如果我写URL domain.com/something-any-word网站运行正常。但是我需要一个XML格式的站点地图,所以我在sitemap.PHP中编写PHP代码。我想要运行时的sitemap.xml(参考网站是) 我当前的.htaccess文件在没有sitemap.xml的情况下工作 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^

如果我写URL domain.com/something-any-word网站运行正常。但是我需要一个XML格式的站点地图,所以我在sitemap.PHP中编写PHP代码。我想要运行时的sitemap.xml(参考网站是)

我当前的.htaccess文件在没有sitemap.xml的情况下工作

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

只需将请求重写到该站点地图即可:

RewriteEngine On

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

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

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

如果希望sitemap.php在运行时显示sitemap.xml,并且希望yourdomain.com/something-without-ext,请在.htacces文件中编写此代码

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]

当你说你的.htaccess文件正在工作时,你能再详细说明一下你的意思吗?