通过www.example.com/page而非www.example.com/page.php访问URLS

时间:2009-11-03 18:27:42

标签: php apache .htaccess mod-rewrite

什么处理延期的禁用?它是APACHE还是PHP安装?如何配置不需要.php扩展名的Web服务器?是否有一个选项可以使www.example.com/page.php和www.example.com/page都作为URL工作?

6 个答案:

答案 0 :(得分:8)

答案 1 :(得分:4)

Apache还有一个名为MultiViews的设置,将domain.com/index.* domain.com/indexdomain.com/example.*设为domain.com/example等。

我偶尔遇到MultiViews击败mod_rewrite规则的问题,因此我倾向于将其关闭。

答案 2 :(得分:3)

查看A List Apart中有关此主题的一些文章:您使用Apache(在您的情况下)设置ReWriteRule,然后您使用PHP解析URL以获取正确的信息。 (再次,在您的情况下。您可以使用多种语言和http服务器执行此操作)

http://www.alistapart.com/articles/succeed/

http://www.alistapart.com/articles/urls/

答案 3 :(得分:2)

brianreavis是对的。以下是.htaccess文件的示例:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

答案 4 :(得分:1)

我只是把它全部扔在PHP上并解析它,但我想在那里:

的.htaccess

RewriteEngine On
RewriteRule !\.(js|ico|gif|jpg|png|css)$ @frontend.php

答案 5 :(得分:1)

我在我的.htaccess中使用它

<Files ~ "^[^.]+$">
ForceType application/x-httpd-php5
</Files>

这样我可以从我的文件中删除所有扩展名(.php),它仍然有用。

我使用$ _SERVER ['PATH_INFO']来检索路径的其余部分作为参数。例如。 / page / param1 / param2其中page是一个实际的php文件。