如何为seo友好的url编写htaccess重写规则

ahm*_*ali 5 .htaccess mod-rewrite

  • 我刚刚开始 .htaccess.
  • 我需要一些重写规则URLs.
  • 我谷歌一些并应用但没有更改URL.

我想要:

demo.example.com/section.php?id=1 
Run Code Online (Sandbox Code Playgroud)

变成:

demo.example.com/section/sample-section
Run Code Online (Sandbox Code Playgroud)

我试过了

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^section/(\d+)*$ ./section.php?id=$1
Run Code Online (Sandbox Code Playgroud)

但没有区别

谢谢.

我将感谢你的帮助.

Jus*_*man 10

首先,确保mod_rewrite的启用和htaccess的文件允许在你的Apache配置.

然后,将此代码放入您的htaccess(必须位于根文件夹中)

Options -MultiViews
RewriteEngine On

# redirect "/section.php?id=xxx" to "/section/xxx"
RewriteCond %{THE_REQUEST} \s/section\.php\?id=([0-9]+)\s [NC]
RewriteRule ^ /section/%1? [R=301,L]

# internally rewrite "/section/xxx" to "/section.php?id=xxx"
RewriteRule ^section/([0-9]+)$ /section.php?id=$1 [L]
Run Code Online (Sandbox Code Playgroud)


Axi*_*iom 5

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^section/([^/]+)$ /section.php?id=$1 [L]
Run Code Online (Sandbox Code Playgroud)

这将转 example.com/section.php?id=Xexample.com/section/X

我建议将 URI 存储在数据库中,然后使用 section.php?uri=

例如:

example.com/section.php?uri=super-awesome

会变成:

example.com/section/super-awesome