mod_rewrite root_dir no_controller

时间:2012-04-12 18:27:47

标签: mod-rewrite rootview

我知道这是一个非常受欢迎的主题,这是我最接近我的请求,但它无法解决我的问题:How do I make a rewrite rule in php?

我希望www.example.com/hello实际加载此脚本:www.example.com/hello.php,又名:www.example.com/*www.example.com/*.php

此外,我可能想传递vars,但总是有第一个斜杠作为脚本名称,之后是任何变量,例如
www.example.com/world/africa
实际上会运行这个脚本:
www.example.com/world.php?var1=africa

www.example.com/beach/us/michigan
会跑:
www.example.com/beach.php?var1=us&var2=michigan

我没有涉及控制器,并希望保持这种方式。我正在一个非常小的网站上工作,最多10页。

我尝试了很多迭代,但最接近我的工作是: 要www.example.com/dir/hello加载www.example.com/hello.php 但我不希望最终用户看到的URL中有额外的目录。我完成了这个规则:
    RewriteRule ^dir/(.*)$ /$1

我在.htaccess文件的顶部启用了这些文件,在documentRoot

RewriteEngine on  
RewriteBase /   

我已经评论了条件。现在这些都不适合我(Apache2)。在下面的列表中,我尝试了许多带有正斜线的变体,没有它们等等。任何想法?

#RewriteCond %{REQUEST_FILENAME}.php -f  
#RewriteRule ^(.*)$  $1.php  
#RewriteRule .* $0.php  
#RewriteCond %{DOCUMENT_ROOT}/$0.php -f  
#RewriteRule .* /$0.php [L]  
#RewriteRule ^/([^.]+)$ /$1.php  
#RewriteRule ^([^/]+).*$ $1.php  
#Rewritstrong texteCond %{REQUEST_FILENAME} !-f  
#RewriteCond %{REQUEST_FILENAME} !-d  
#RewriteRule ^(.*)$ index.php?page=$1  
#RewriteRule !\.(js|ico|txt|gif|jpg|png|css)$ index.php?page=$1 [L,QSA]  
# this works but shows 'dir' in URI: RewriteRule ^dir/(.*)$ /$1.php  
#RewriteRule (^|/)([^.]+)$ $2.php [QSA]  
#RewriteRule (.*) /$1.php  
#RewriteRule ^([^/]+)/$ /$1.php    

0 个答案:

没有答案