gpt4 book ai didi

regex - 具有两种不同条件的 .htaccess RewriteRule

转载 作者:行者123 更新时间:2023-12-05 04:21:24 37 4
gpt4 key购买 nike

我有两个不同的 URL:

1.: mysite.com/file.php

2.: mysite.com/**articles**.php?article=**something**

我想将 mysite.com/file.php 重写为 mysite.com/file

我想将 mysite.com/**articles**.php?article=something 重写为 mysite.com/**news**/**something**

我试过了,但没用。

mysite.com/file.php重写为mysite.com/file,但不重写mysite.com/**articles**。 php?article=**something**mysite.com/**news**/**something**

RewriteEngine On 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^?\ ]+)\.php
RewriteCond %{REQUEST_FILENAME} !exception.php
RewriteRule ^news/([^/]+)(/*)$ /articles.php?article=$1
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]

(代码中有一个异常(exception):exception.php,我不想重写。)

你能更正我的代码吗?我已经为此工作了 4 天,我已经阅读了所有内容,但我做不到。

最佳答案

使用您展示的示例和尝试,请尝试遵循 .htaccess 规则文件。请确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine ON
##External redirect for file.php file.
RewriteCond %{REQUEST_URI} !/?exception\.php [NC]
RewriteCond %{THE_REQUEST} \s/(file)\.php/?\s [NC]
RewriteRule ^ /%1? [R=301,L]

##Internal rewrite for php files.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/?$ $1.php [QSA,L]

##external + internal rewrite rules for articile.php here.
RewriteCond %{THE_REQUEST} \s/articles\.php\?article=(\S+)\s [NC]
RewriteRule ^ /news/%1? [R=301,L]
RewriteRule ^news/([^/]*)$ articles.php?article=$1 [NC,QSA,L]

关于regex - 具有两种不同条件的 .htaccess RewriteRule,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74211762/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com