0

RewriteRule我里面太多了.htaccess

现在我喜欢删除这些RewriteRule并使用 php 加载或重定向我的链接。

为此我使用header但是当我使用它时,我在浏览器中的原始网址正在改变。

例如:我的原始链接:http://test.com/something/someID,当我使用标题时,它变为:http://test.com/page.php?id=

底线我需要像 vbseo (vbulletin) 这样的东西来管理我的链接而不使用RewriteRule,但当然我有下面的代码.htaccess来将我的所有链接重定向到某个特定页面。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php [L,QSA]
4

2 回答 2

1

只是不要给出任何标题。默认情况下,重定向链接保持不变。(即使服务器重定向它们,它对客户端也是透明的)。因此,您需要将其传递给 index.php,但需要使用原始路由的 GET 值。

所以...

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f    #If requested filename is not a file
RewriteCond %{REQUEST_FILENAME} !-d    #If requested filename is not a directory
RewriteRule ^(.+)$ index.php?route=$1 [L,QSA]

所以example.com/this/is/a/test会重定向到example.com/index.php?route=this/is/a/test哪个,然后您可以签入您的 index.php 文件并根据您的需要重新路由$_GET['route']

于 2012-04-24T12:19:09.983 回答
0

如果这是您要求的,我不完全确定:

您可以使用像 Codeigniter URI 类这样的类来获取 URI 的单个段:

URI 类源

URI 类描述

使用给定的段,您现在可以在应用程序中决定要做什么,而无需将其硬编码到 .htaccess 中

于 2012-04-24T12:21:32.233 回答