0

我有一个 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 “administration/modules”之类的链接指向“index.php/administration=administration&pid=modules”或“administration”指向“index.php?pid=administration”。

出于性能原因,我想修改 htaccess,所以它可以直接链接

“管理_55”

index.php?pid=55"

所以'55'(记录的id)必须以某种方式从pid参数“pid=administration_55”中提取出来。因为我也希望有一个可见的 url,比如“www.example.com/administration”,没有“_55”部分,我想知道,如何直接在 htaccess 文件或在响应带有标头重定向的 php 文件?

提前感谢,杰登

4

3 回答 3

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) 的记录。为了提高性能,我还向该字段添加了索引。

于 2012-06-06T15:51:59.950 回答
0

您可以使用 htaccess 进行重定向,但您必须有带有 _55 部分的 url

于 2012-06-06T15:41:44.910 回答
0

仅仅因为你可以并不意味着你应该......你不能在站点本身的 index.php 中处理这个基于REFERRER另外的更安全并且不需要启用 .htaccess 支持...... ?

于 2012-06-06T15:33:45.223 回答