从htaccess中的url中删除文件名

时间:2014-08-06 17:31:56

标签: apache .htaccess mod-rewrite

我的网址附加了' filename.php'当某个页面被加载时。

导航到例如:

domain.com/page1

如果我尝试导航到第2页,我会期待这个结果

domain.com/page2 但我得到了 dmomain.com/page1/page2

只有在导航到page1时才会出现此问题,如果我导航到任何其他页面和一系列页面,则不会发生此页面上的页面。

我确信它是我的htaccess并且有一个不错的想法问题在哪里,只是不知道如何设置我的条件来阻止这个问题。这是我的htaccess

   RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !^/page1/([^\.]+)
    RewriteRule ^([^\.]+)$ $1.php [NC,L]

    RewriteCond %{HTTP_HOST} ^(domain.com)$
    RewriteCond %{REQUEST_URI} ^/page1/([^\.]+)
    RewriteRule ^([^\.]+)/([^\.]+)$ http://%{HTTP_HOST}/$1.php/$2 [NC,L]

    RewriteCond %{REQUEST_URI} ^/page1/([^\.]+) // checks if request_uri matches 'page1/[SOME_DIR]'
    RewriteCond %{REQUEST_FILENAME} !^/page1/([^\.]+)\.(php) // trying to check if [SOME_DIR] does not have '.php' on the end
    // this should resolve the 'page1/page2' issue, since I dont want a rewrite to occur when [SOME_DIR] has '.php'
    RewriteRule ^([^\.]+)/([^\.]+)$ $1.php/$2 [NC,L]

我已经考虑过创建一个条件,当{REQUEST_URI}包含' page2'或者'第3页'。这就产生了必须在htaccess中为每个不同的链接输入新页面的问题。完全不喜欢这样。

0 个答案:

没有答案