.htaccess 愚蠢的修改问题

.htaccess 愚蠢的修改问题,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我想我以前从来没有问过这样的问题,我知道我应该读一下手册,所以我读了,但我就是做不到 我需要一个重写规则来从以下内容开始: https://www.proevisa.com/ar/idea.php?permalink=proevisa/is-it-safe-to-provide-my-personal-and-finance-information-online 为此: https://www.proevisa.com/ar/proevisa/is-it-safe-to-provide-my-

我想我以前从来没有问过这样的问题,我知道我应该读一下手册,所以我读了,但我就是做不到

我需要一个重写规则来从以下内容开始:

https://www.proevisa.com/ar/idea.php?permalink=proevisa/is-it-safe-to-provide-my-personal-and-finance-information-online
为此:

https://www.proevisa.com/ar/proevisa/is-it-safe-to-provide-my-personal-and-finance-information-online
我还不知道我是否应该更新网站上的链接,因为它们指向的是原始URL而不是漂亮的URL

谁能帮我一点忙吗

非常感谢,
Chris

如果没有涉及查询字符串,则可以使用
重定向匹配
(不确定为什么要忽略URL的这一部分,或者可能是我弄错了)

无论如何,使用mod_rewrite可以尝试以下方法:

RewriteCond %{REQUEST_URI}?%{QUERY_STRING} ^/ar/idea\.php\?permalink=(.*?)$
RewriteRule . /ar/%1? [R=301]

这是假设< <代码>改写引擎在指令当前,并且没有其他可以混合的MODE重写规则(如果有的话,考虑使用<代码> L/COD>标志或重新排列规则)。

%1
permalink=
之后引用regexp“group”的内容<代码>?在它告诉您从结果中省略旧的查询字符串之后<代码>R=301是一个永久重定向


当然,更新网站上的链接,在旧链接从索引和书签中消失后,删除规则,因为它们将变得不相关。

因此,我最终找到了更多基于PHP的解决方案,因为我的mod_重写技能并不太好。这就是我所做的:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /proevisa/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /proevisa/ar/idea.php?r=$1
</IfModule>
  • 再次定义基本目录
  • 分析原始请求URI
  • 稍微清理一下以避免永久链接的问题
  • 然后我们查询数据库,看看是否有任何文章与$\u服务器['REQUEST\u URI']匹配

    这不是我所描述的问题的具体解决方案,但它可以很好地使用PHP处理几乎每一个案例,好像找不到它一样,您可以轻松地重定向到PHP,甚至可以在查询中使用LIKE,并显示类似的结果

    希望它能帮助别人!
    克里斯

    您应该显示您当前试图解决该问题的代码。谢谢*1000次气体焊机。。。htaccess真的不适合我。
    //recibimos la información del usuario
    $idea->base_dir = "/proevisa/ar";
    $idea->permalink = addslashes($_SERVER['REQUEST_URI']);
    $idea->permalink = str_replace($idea->base_dir, "", $idea->permalink);