我必须将我的网站的 URL 设为 SEO 友好的 URL,我尝试了一些 .htaccess 代码,但没有成功。目前我网站的网址是这样的:- https://www.sarkariresultz.net/postview.php?id=latest-jobs/sbi-specialist-officers-so-various-post-recruitment-2024 但我希望该网站的网址是这样的:https://www.sarkariresultz.net/latest-jobs/sbi-specialist-officers-so-various-post-recruitment-2024
RewriteEngine On
Rewritecond %{REQUEST_FILENAME} !-d
Rewritecond %{REQUEST_FILENAME}\.php-f
RewriteRule ^(.*)$ $1.php [L]
RewriteRule ^post/([0-9]+)$ postview.php?id=$1 [L,QSA]
这将是您可能寻找的一般形式:
RewriteEngine On
Rewritecond %{REQUEST_FILENAME} !-d
Rewritecond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.+)/?$ /postview.php?id=$1 [L]
这将重写任何传入的请求不直接指向脚本的现有文件或文件夹
postview.php
并将实际请求的路径作为HTTP GET参数“id”。
这样的规则可以在中央http服务器的主机配置中实现。或者,如果您无权访问该功能,则可以使用分布式配置文件(通常称为“.htaccess”),如果在中央配置中启用了该功能。此类文件需要可供 http 服务器进程读取,并且必须位于为您的 http 主机配置为
DocumentRoot
的文件夹中。
也许您还想添加一条规则,以将请求旧的现有 URL 方案的客户端外部重定向到您建议的新方案。所以像这样的组合:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^id=(.+)$
RewriteRule ^/?postview\.php$ /%1 [R=301,L]
Rewritecond %{REQUEST_FILENAME} !-d
Rewritecond %{REQUEST_FILENAME} !-f
RewriteRule ^/?(.+)/?$ /postview.php?id=$1 [L]
您可能需要实施该一般规则的例外情况。我们不能说。如果是这样,那么您需要在一般规则之前实施例外规则,因此在该文件中更靠前。