【问题标题】:Remove php extension from subfolder url从子文件夹 url 中删除 php 扩展
【发布时间】:2016-10-27 11:11:23
【问题描述】:

我正在尝试为我的项目添加一些其他页面。但我有一个关于 php 扩展的问题。

所以我将 htaccess 用于某些 url,例如以下 htaccess:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?)
RewriteRule ^ /%1 [R=301,L]

RewriteRule ^friends/([\w-]+)/?$ /friends.php?username=$1 [L,QSA]
RewriteRule ^followers/([\w-]+)/?$ /followers.php?username=$1 [L,QSA]
RewriteRule ^status/([\w-]+)/?$ /status.php?msgID=$1 [L,QSA]
RewriteRule ^following/([\w-]+)/?$ /following.php?username=$1 [L,QSA]
RewriteRule ^followers/([\w-]+)/?$ /followers.php?username=$1 [L,QSA]
RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ /profile.php?username=$1 [L,QSA]

现在,我从 details 文件夹中创建了 photos.php,链接是:

<a href="http://www.name.com/details/photos.php">Go Photos</a>

当我点击 Go Photos 链接时,我想删除那个 url php 扩展,比如

http://www.name.com/details/photos

我仍然尝试了一些来自 stackOverflow 的答案

Remove .php extension from url

Remove php extension from url

但这个答案给了我 404 页面未找到。

如何从 url 中删除 .php 扩展名,任何人都可以在这里帮助我?

【问题讨论】:

标签: php .htaccess


【解决方案1】:

您需要额外的规则来删除.php 扩展。

使用这些规则:

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]

RewriteRule ^status/([\w-]+)/?$ status.php?msgID=$1 [L,QSA]

RewriteRule ^(following|followers|friends)/([\w-]+)/?$ $1.php?username=$2 [L,QSA]

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

RewriteRule (?:^|/)([\w-]+)/?$ profile.php?username=$1 [L,QSA]

【讨论】:

  • 亲爱的,我还使用了其他一些想法,例如:&lt;link rel="canonical" href="https://www.name.com/explore/explore"&gt; 探索是 explore.php 如果我使用您的代码,那么我无法打开探索页面,它显示内部服务器错误。我该如何解决这个问题?
  • oww 还关注、关注者和朋友的链接,给出 500 内部服务器错误
  • @anumbhava 它是来自我的 imac 的 localhost:8888 。我不知道如何检查 error.log
  • 页面如下所示:IMAGE
猜你喜欢
  • 1970-01-01
  • 2023-04-05
  • 2019-02-12
  • 2013-07-24
  • 1970-01-01
  • 2015-08-02
  • 2021-01-08
  • 2012-08-27
相关资源
最近更新 更多