【问题标题】:htaccess Rewrite (remove php extension)htaccess 重写(删除 php 扩展)
【发布时间】:2015-03-14 02:26:29
【问题描述】:

今天我的 .htaccess 文件有问题。在我的服务器上,我有几个文件夹,每个文件夹分别是下面的网站示例:

服务器结构(全局文件夹)

- my_portfolio
- website_two
- my_website
- example

在“示例”文件夹中,我有那个 .htaccess 文件:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]

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

#To remove www header
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]

当我打开我的网站地址时,RewriteRule 运行良好,没有“www”并且 .php 扩展名是不可见的,但是当我单击菜单中其他网站的链接时,我会得到如下信息: www.example.com/example/contact。

我的网站地址是 www.example.com,该网站的所有内容都在服务器上的示例文件夹中。我不知道我在哪里或写错了什么。当我尝试继续使用另一个网站重写引擎时,总是给我一个不带 .php 扩展名的链接,但在链接之前添加到文件夹名称。

这是一个很好的例子:

www.example.com/contact.php - normal link without htaccess
example.com/example(folder name where is a website)/contact - now
example.com/contact - should be

【问题讨论】:

    标签: php apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    重新排序规则并将重定向规则置于内部路由规则之前:

    Options +FollowSymLinks -MultiViews
    RewriteEngine On
    RewriteBase /
    
    #To remove www header
    RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    RewriteRule ^ http://%1%{REQUEST_URI} [L,R=301,NE]
    
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
    RewriteRule ^ %1 [R,L,NE]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.*?)/?$ $1.php [L]
    

    也可以在新浏览器上进行测试以避免旧的 301 缓存。

    【讨论】:

    • 您好 anubhava 感谢您的回答,但效果是一样的
    • /example/ 在您的VirtualHost 设置中是否未设置为DocumentRoot
    • 我从提供商那里托管,这不是我的本地主机或服务器。我在服务器上的目录看起来是:/public_html/webisteone/index.php 我无法访问 VirtualHost 设置,我只能在 htaccess 中编写正确的代码并将此文件放入“websiteone”目录。我在上面写的 htaccess 中的所有设置。
    猜你喜欢
    • 2014-12-22
    • 1970-01-01
    • 2018-08-21
    • 2014-06-19
    • 2017-01-07
    • 1970-01-01
    • 1970-01-01
    • 2012-03-18
    • 2011-08-29
    相关资源
    最近更新 更多