【问题标题】:Custom PHP/SQL CMS htaccess rules自定义 PHP/SQL CMS htaccess 规则
【发布时间】:2018-10-21 18:59:56
【问题描述】:
【问题讨论】:
标签:
php
sql
.htaccess
mod-rewrite
【解决方案1】:
对于其他苦苦挣扎的人 - 这是我的最终代码:
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1/ [R,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/$
RewriteRule . %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]
RewriteEngine On
RewriteRule ^(.*)\/$ blog-post.php?slug=$1 [L,QSA]
【解决方案2】:
虽然您首选的 URL 方法是重定向所有内容,例如/sample-slug-from-database/,我认为最好采用不那么严格的实现,例如/news/sample-slug-from-database/
不管怎样,这是第一个实现:
# URL
# INPUT http://www.example.com/random-slug/
# OUTPUT http://www.example.com/news/blog-post.php?slug=random-slug
RewriteEngine On
RewriteRule ^(.*)\/$ news/blog-post.php?slug=$1 [L,QSA]
第二种方式:
# URL
# INPUT http://www.example.com/news/random-slug/
# OUTPUT http://www.example.com/news/blog-post.php?slug=random-slug
RewriteEngine On
RewriteRule ^news\/(.*?)(\/(.*?)*)$ /news/blog-post.php?slug=$1 [L]