文件夹结构如下:
域名
-->folder
-->subfolder
-->index.php
-->another-file.php
我想要的是,当我转到
/folder/subfolder
时,默认情况下加载index.php,而是在 URL 中显示 /folder/subfolder/more-scribed-name-of-my-choosing。
我尝试过做这样的事情:
RewriteRule ^folder/subfolder/index.php /folder/subfolder/more-readable-name-of-my-choosing
但我还没有完全弄清楚正确的模式。
或者,我可以将索引文件重命名为
more-readable-name-of-my-choosing.php
,然后我需要弄清楚如何在转到 /folder/subfolder/
时重定向到该文件,而不阻止我访问子文件夹中的其他文件
要实现 SEO 友好的 URL 并将
index.php
重命名为 URL 中更易读的名称,您可以在 .htaccess
文件中使用 Apache 的 mod_rewrite 模块。您可以重写 URL 而不更改文件名,也可以重命名索引文件。
这里有两种不同的方法:
选项 1:重写 URL
RewriteEngine On
# Rewrite /folder/subfolder/more-readable-name-of-my-choosing to /folder/subfolder/index.php
RewriteRule ^folder/subfolder/more-readable-name-of-my-choosing/?$ /folder/subfolder/index.php [L]
# Rewrite /folder/subfolder/ to /folder/subfolder/more-readable-name-of-my-choosing
RewriteRule ^folder/subfolder/?$ /folder/subfolder/more-readable-name-of-my-choosing [L]
这将允许您使用更友好的 URL
index.php
访问您的 /folder/subfolder/more-readable-name-of-my-choosing
文件,也可以使用原始 URL /folder/subfolder/
访问它。
选项 2:重命名索引文件
如果您想将索引文件本身重命名为
more-readable-name-of-my-choosing.php
并仍然访问子文件夹中的其他文件,您可以使用以下 .htaccess
规则:
RewriteEngine On
# Rewrite /folder/subfolder/ to /folder/subfolder/more-readable-name-of-my-choosing.php
RewriteRule ^folder/subfolder/?$ /folder/subfolder/more-readable-name-of-my-choosing.php [L]
# Allow access to other PHP files in the subfolder directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^folder/subfolder/([^/]+)/?$ /folder/subfolder/$1 [L]
确保根据您的文件夹结构和要使用的具体名称调整规则中的路径和文件名。 还要检查您的服务器是否已启用
mod_rewrite
。