无法获得RewriteRule工作

时间:2014-10-15 11:21:45

标签: php apache .htaccess mod-rewrite xampp

我正在使用php创建一个小型动态网站,并尝试创建重写,以便网址看起来更好。 (我使用XAMPP)

rootfolder是当前的“localhost / students”。 首先,.htaccess是否需要在该文件夹或localhost文件夹中?

中学,我希望我的所有请求都转到index.php但不显示“index.php”。此外,我很乐意将students\index.php?site=question&question=1重写为students\question\1

所以我试着像这样开始:

RewriteEngine on
RewriteBase /students
RewriteRule ^/question/([0-9]+)$   index.php?site=question&question=$1

但这实际上没什么。我该怎么做?是否有更好的解决方案来重写网址?

最后但并非最不重要的是,是否可以通过该网址复制再次访问同一网站?我抓住$_GET('site)来生成正确的内容。

1 个答案:

答案 0 :(得分:1)

您需要将此代码保留在/students/.htaccess

RewriteEngine on
RewriteBase /StudentsHelp/

RewriteCond %{THE_REQUEST} /(?:index\.php)?\?site=(question)&question=([^\s&]+) [NC]
RewriteRule ^ %1/%2? [R=302,L]

RewriteCond %{THE_REQUEST} /(?:index\.php)?\?site=(register) [NC]
RewriteRule ^ %1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^question/([0-9]+)/?$ index.php?site=question&question=$1 [L,QSA,NC]

RewriteRule ^(register)/?$ index.php?site=$1 [L,QSA,NC]