【问题标题】:Rewriterule for PHP files failsPHP 文件的重写失败
【发布时间】:2021-12-30 14:40:16
【问题描述】:

我想将这些 .htaccess 规则重写为模板,以便将其也用于我的其他页面:

RewriteRule ^admin/add-news/?$ admin/add_news.php [L]
RewriteRule ^admin/edit-news/([0-9a-z-@._]+)/([0-9]+)/?$ admin/edit_news.php?name=$1&id=$2 [L]

例如:

RewriteRule ^admin/([a-z-])/?$ admin/$1.php [L]
RewriteRule ^admin/([a-z-])/([0-9a-z-@._]+)/([0-9]+)/?$ admin/$1.php?name=$2&id=$3 [L]

我在 WAMP 上测试了最新规则,但它不起作用。它返回:404 Not Found 错误

在此服务器上找不到请求的 URL。

完整的 .htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php
RewriteRule ^admin/add-news/?$ admin/add_news.php [L]
RewriteRule ^admin/edit-news/([0-9a-z-@._]+)/([0-9]+)/?$ admin/edit_news.php?name=$1&id=$2 [L]

文件位置是:

1. C:\wamp64\www\test.com
2. C:\wamp64\www\test.com\admin\add_news.php
C:\wamp64\www\test.com\admin\edit_news.php
3. I want redirect from URLs with underscores to hyphens, for example:
from admin/add_news.php to admin/add-news
Also from admin/edit_news.php?name=%1&id=%2 to admin/edit-news/name/id
Example: admin/edit-news/my-news-title/2

任何想法如何解决它?谢谢。

【问题讨论】:

  • 感谢您的努力,请您在这里告诉我们 3 件事。 1st-您的 htaccess 文件在哪里(完整路径详细信息),2nd-您的 .php 文件在哪里(请提供完整路径)? 3rd-您正在访问哪些示例网址?以及从哪个示例网址到您要重写/重定向的哪个示例网址?谢谢。
  • @RavinderSingh13 好的。 1. C:\wamp64\www\test.com2. C:\wamp64\www\test.com\admin\add_news.php C:\wamp64\www\test.com\admin\edit_news.php3. I want redirect from URLs with underscores to hyphens, for example: from admin/add_news.php to admin/add-news Also from admin/edit_news.php?name=%1&id=%2 to admin/edit-news/name/id谢谢。
  • 感谢您提供信息,所以您在浏览器中点击链接admin/edit-news/name/id?如果是,请在您的问题中添加所有信息以使其更清楚,谢谢。
  • @RavinderSingh13 是的,浏览器 url 必须是例如:admin/edit-news/my-news-title/2

标签: .htaccess url-rewriting wamp


【解决方案1】:

根据您显示的尝试,请尝试遵循 htaccess 规则文件。

确保您的 .htaccess 与您的管理文件夹一起存在,并确保在测试您的 URL 之前清除您的浏览器缓存。

具体规则示例:

RewriteEngine ON
RewriteBase /test.com/
##First rule for hitting url admin/add-news in browser.
RewriteRule ^test\.com/admin/([\w-]+)/?$ admin/$1.php [QSA,NC,L]

##Second rule for hitting url admin/edit-news/name/id in browser.
RewriteRule ^test\.com/admin/([\w-]+)/([^/]*)/(\d)+/?$ admin/$1.php?name=$2&id=$3 [QSA,NC,L]

通用规则:

RewriteEngine ON
RewriteBase /test.com/

##First rule for hitting url admin/add-news in browser.
RewriteRule ^test\.com/admin/([^-]*)-([^/]*)/?$ admin/$1_$2.php [QSA,NC,L]

##Second rule for hitting url admin/edit-news/name/id in browser.
RewriteRule ^test\.com/admin/([^-]*)-([^/]*)/([^/]*)/(\d)+/?$ admin/$1_$2.php?name=$3&id=$4 [QSA,NC,L]

【讨论】:

    猜你喜欢
    • 2020-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-13
    相关资源
    最近更新 更多