-1

我正在使用以下.htaccess代码强制www进入我的网站域名。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

现在我想从这里更改我的网址:

www.mysite.com/index.php?i=something

www.mysite.com/something

但我还是想有能力去

www.mysite.com/admin.php(例如)作为单独的页面。

我尝试将此代码添加RewriteRule ^(.*)$ index.php?i=$1 [NC]到我的.htaccess文件中,但是当我在之后键入任何内容时,/它将被视为获取变量。我该如何解决这个问题?

4

4 回答 4

2

您可以在根目录的一个 .htaccess 文件中尝试类似的操作。

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !index\.php  [NC]
RewriteCond %{REQUEST_URI} !admin\.php  [NC]
RewriteRule ^(.+)/?  /index.php?i=$1    [L,NC]

如果admin.php可以是任何文件,只需替换

RewriteCond %{REQUEST_URI} !admin\.php  [NC]

RewriteCond %{REQUEST_FILENAME} !-f

要重定向到 404 错误处理程序脚本,请添加如下一行:

ErrorDocument 404 /path/404.php

这只是一个示例,请进行相应修改。

于 2013-03-27T10:09:00.817 回答
1

试试这个:-

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
于 2013-03-27T10:12:50.340 回答
0

你必须像这样添加过期它必须在你的 RewriteRule S=1Skip RewriteRule 之前在过期之后看到这个页面有关这个标志的更多信息http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewriteflags

RewriteCond %{REQUEST_URI} ^(.*)/admin\.php$ [NC,OR]
RewriteRule ^ admin.php [S=1,L] 
RewriteRule ^(.*)/$ /index.php?i=$1 [NC]
于 2013-03-27T10:06:52.293 回答
0

尝试这个...

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/$ /index.php?i=$1 [L]  // www.mysite.com/something/

或者

RewriteRule ^(.*)$ /index.php?i=$1 [L]  // www.mysite.com/something
于 2013-03-27T10:03:08.237 回答