2011-02-23 75 views
0

有可能使用mod_rewrite和htaccess的其中一个用户可以输入重写我的网址:mod_rewrite的问题

http://www.mainsite.com/12345

该服务器将作为翻译:

http://www.mainsite.com/index.php?ID=12345

通过还试图删除文件(删除.php)冲突并导致永不结束的重定向:

<IfModule mod_rewrite.c> 
Options +FollowSymlinks 
RewriteEngine On 
RewriteBase/
RewriteRule ^(.*)\.php$ $1 [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9a-zA-Z]+)$ index.html?ID=$1 [QSA,NC,L,R] 
</IfModule> 

回答

1
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([0-9]+)$ index.php?ID=$1 
+0

@津巴布奥 - 感谢您的帮助!如果我想包含任何字母数字,我是否只需更改[0-9]内的内容?另外 - 如果12345是目录或文件,会导致冲突吗? – 2011-02-23 18:40:08

+0

是的,你可以将[0-9]改为[0-9a-zA-Z]。除此之外,我会在答案中做出修改。 – Zimbabao 2011-02-23 18:41:56

+0

@津巴布奥 - 所以我认为重写将是: RewriteRule ^(。+)$ index.php?ID = $ 1 感谢您的帮助 - 您能否解决我上面评论中的问题? – 2011-02-23 18:42:06