我有一个htaccess文件,如下所示:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?$1=$1&pid=$2 [L,QSA]
RewriteRule ^([^/]+)/?$ /index.php?pid=$1 [L,QSA]
指向fe“管理/模块”之类的链接到“index.php / administration = administration& pid = modules”或“administration”到“index.php?pid = administration”。
对于Performance-Reasons,我想修改htaccess,所以它可以指向像
这样的链接“administration_55”
到
的index.php?PID = 55"
所以'55'(记录的id)必须以某种方式从pid-parameter“pid = administration_55”中提取。因为我也希望有一个像“www.example.com/administration”这样没有“_55”部分的可见网址,我想知道,这将如何以一种好的方式完成,直接在htaccess文件中或用标题重定向响应php文件?
Thanx in Advance,Jayden
答案 0 :(得分:0)
仅仅因为你不能意味着你应该......你不能在基于REFERRER
的网站本身的index.php中处理这个问题,这会更加安全且不需要。 htaccess支持启用...?
答案 1 :(得分:0)
您可以使用htaccess进行重定向,但必须使用带有_55部分的网址
答案 2 :(得分:0)
# e.g. /administration/modules
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?$1=$1&pid=$2 [L,QSA]
# e.g. /administration_55
RewriteRule ^([^/]+)_([[0-9]+)/?$ /index.php?$1=$1&pid=$2 [L,QSA]
# e.g. /test
RewriteRule ^([^/]+)/?$ /index.php?pid=$1 [L,QSA]
至于删除55,最好的方法是使用PHP。我的数据库表中有一个名为'url'的单独字段,因此我可以找到具有正确url(-part)的记录。为了提高性能,我还在此字段中添加了索引。