提问人:Erich Mosier 提问时间:11/2/2023 更新时间:11/2/2023 访问量:38
htaccess重命名索引.php以在SEO的URL中显示为友好名称
htaccess rename index.php to show as friendly name in URL for SEO
问:
文件夹结构是这样的:
域
-
-->folder
-
-->subfolder
-
-->index.php
-
-->another-file.php
我想要的是,当我去默认情况下加载索引.php时,将在URL中显示/文件夹/子文件夹/更多可读名称。/folder/subfolder
我试过做这样的事情:
RewriteRule ^folder/subfolder/index.php /folder/subfolder/more-readable-name-of-my-choosing
但我还没有完全弄清楚正确的模式。
或者,我可以将索引文件重命名为 ,然后我需要弄清楚如何在不阻止我访问子文件夹中的其他文件的情况下重定向到它more-readable-name-of-my-choosing.php
/folder/subfolder/
答:
要实现 SEO 的友好 URL 并在 URL 中重命名为更易读的名称,您可以在文件中使用 Apache 的 mod_rewrite 模块。您可以在不更改文件名的情况下重写 URL,也可以重命名索引文件。index.php
.htaccess
以下是两种不同的方法:
选项 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 访问您的文件,也可以使用原始 URL 访问它。index.php
/folder/subfolder/more-readable-name-of-my-choosing
/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
更新
如果选项 1 的前半部分未按预期工作,则 .htaccess 文件或服务器配置中可能存在冲突或其他规则,从而影响该行为。试试这个:
RewriteEngine On
# Rewrite /folder/subfolder/ to /folder/subfolder/more-readable-name-of-my-choosing
RewriteRule ^folder/subfolder/?$ /folder/subfolder/more-readable-name-of-my-choosing [R=301,L]
# 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]
评论