.htaccess htaccess重命名index.php以在URL中显示为SEO的友好名称

ev7lccsx  于 2023-11-22  发布在  PHP
关注(0)|答案(1)|浏览(208)

文件夹结构是这样的:

-->folder

字符串
*

-->subfolder


*

-->index.php


*

-->another-file.php

我想要的是,当我去/folder/subfolder默认加载index.php时,而不是在URL中显示**/folder/subfolder/more-readable-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/时重定向到该文件,而不会阻止我访问子文件夹中的其他文件

odopli94

odopli941#

要实现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 /folder/subfolder/more-readable-name-of-my-choosing访问index.php文件,并使用原始URL /folder/subfolder/访问它。

选项二:重命名索引文件

如果您想将索引文件本身重命名为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]

相关问题