所以目前我使用这段代码:
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(index\.php)?\?([^&\ ]+)
RewriteRule ^ /%1? [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]
如果我使用例如:localhost /?login - >它可以很好地工作本地主机/登录
但是我决定要为我的论坛修复此问题,该论坛使用localhost /?forum& id = 123并使其看起来像localhost / forum / 123
而且我不太确定如何解决这个问题,现在试了几个小时。
答案 0 :(得分:0)
我想在前几天实现类似的功能,这就是我最终在我的.htaccess文件中运行的内容。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^forum/(.+)\.php /forum?id=$1 [L,QSA]
请注意,我不是正则表达式的专业人士,因此在您的具体情况下,这可能无效。我自己不得不捣乱它一段时间,直到我开始工作。
我的网址看起来像这样:/forum?id=012
并且它已转换为/forum/012
并且在我的php通话中我在include('/forum/012.php');
上有if ($_GET['id'] == '012')
(这是一个循环,但是这基本上就是php方面的问题)。
答案 1 :(得分:0)
以下内容应将localhost/?forum&id=123
更改为localhost/forum/123
RewriteEngine On
RewriteCond %{THE_REQUEST} ^(GET|POST)\ /\?forum=(.*)&id=(.*)\ HTTP
RewriteRule ^ /%2/%3\? [R,L]