我有这些漂亮的网址:
应用程序/类别/编辑/ 4
应用程序/产品/概述
的.htaccess
RewriteEngine On
RewriteRule ^([a-z]+)/([a-z]+)/?([0-9]*)$ index.phpcontroller=$1&action=$2&id=$3 [NC,L]
是否可以定义任何其他其他网址返回索引?
p.e。 app / i / am / the / faster / man / alive --->应用程序/
非常感谢帮助!
答案 0 :(得分:2)
您可以为此制定新规则:
RewriteEngine On
RewriteBase /app/
RewriteRule ^([a-z]+)/([a-z]+)/?([0-9]*)$ index.php?controller=$1&action=$2&id=$3 [NC,L,QSA]
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
我添加了?在index.php之后
答案 1 :(得分:1)
您问题的答案
是否可以只允许正确的漂亮网址?
Sorta,但您必须更加具体地遵守规则以限制它们。举个例子。
RewriteEngine On
RewriteBase /app
#rewrite rule if starts with /app/product or /app/category
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(product|category)/([a-z]+)/([0-9]*)/?$ index.php?controller=$1&action=$2&id=$3 [NC,L]
#else redirect to homepage
RewriteRule . app/ [R=301,L]
这样可以确保只有http://example.com/app/product/1
的网址会被重写,其他所有网址都会被http://example.com/app/some/other/page
重写到您的主页。