2012-10-04 129 views
0

可能重复:
Remove .PHP File Extension in URL的.htaccess删除php扩展的第一个目录只有

我有我的.htaccess文件设置为忽略.PHP从URL中扩展。例如:

mysite.com/page
mysite.com/item
mysite.com/about

读自:

mysite.com/page.php
mysite.com /item.php
mysite.com/about.php

这是伟大的;不过,我使用URL的剩余部分作为参数,我想忽略它。举例来说,我想:

mysite.com/item/1234567890/a-product

要阅读:

mysite.com/item.php

不是:

mysite.com/item/1234567890/a-product.php

任何想法如何在.htaccess中完成此操作?这是我目前的.htaccess文件:

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

回答

0

你可以通过路由器文件中使用某种形式的“路由器”的路由所有请求。在那个路由器文件中,你可以嗅出剩余的url并用它做你想要的。

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ router.php?url=$1 [PT,L,QSA] 
</IfModule> 

内。然后router.php,是这样的:

if (isset($_GET["url"])) { 
    $url = $_GET["url"]; 
} 

/*单独的$网址为变量,包括您item.php文件,通过$网址的其余部分包含的文件*/

不知道这是否是正确的方式,但它是一种方式。

0

尝试:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} ^/([^/]+)/? 
RewriteCond %{DOCUMENT_ROOT}/%1.php -f 
RewriteRule ^(.*)$ %1.php [L] 

这做什么你的规则本来还有第一个文件夹后,把该东东删除。

相关问题