【问题标题】:Facing error after removing .php exetension删除 .php 扩展名后面临错误
【发布时间】:2016-10-06 10:49:23
【问题描述】:

这是我删除 .php 扩展名后的 .htaccess 代码。我正面临这个错误


错误请求您的浏览器发送了一个请求,该服务器 听不懂。

 DirectorySlash On
    RewriteCond %{THE_REQUEST} ^GET\s([^.]+)\.php\?id=([^&\s]+)\s [NC]
    RewriteRule ^ %1/%2? [R,L]
    # Redirect external .php requests to extensionless url
    RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
    RewriteRule ^(.+)\.php$ https://%{HTTP_HOST}/$1/ [L,NC]

编辑:

.htaccess 位于根目录内。

原来的网址是这样的:cloud9cumulus.com/shieldpayments/view/login.php

【问题讨论】:

  • 您的原始网址是什么,请提供您当前的典型规则以理解。
  • 您的 htaccess 在哪个文件夹中?
  • 代码太长了,我不能放在这里
  • 它在主根文件夹中

标签: php .htaccess core


【解决方案1】:

试试这个,

Options -MultiViews

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^shieldpayments/view/([\w-]+)$ shieldpayments/view/$1.php [L]

此规则足以删除您当前 url 的 .php 扩展名,并在尝试之前删除与此相关的其他规则。

【讨论】:

  • 好的,非常感谢,我会检查并通知您。
【解决方案2】:

问题的解决方案终于来了

<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=302,NE,L]
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*)index\.php$ /$1 [L,R=302,NC,NE]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

</IfModule>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2021-02-01
    • 1970-01-01
    • 2020-08-11
    • 2011-04-30
    相关资源
    最近更新 更多