.htaccess Mod重写困难,规则不起作用

frebpwbc  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(164)

因此,经过大量的测试-我已经开始找出我的问题,但仍然不能让重写工作。
这是我的htaccess文件现在的样子。

RewriteEngine On

RewriteRule ^schemdetail/id/(.*)$ schematicdetails?id=$1 [L,NC]

RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://abfielder.com/$1 [R=301,L]
DirectoryIndex index.php

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*) $1.php [L]

第一条规则是我有问题的

RewriteRule ^schemdetail/id/(.*)$ schematicdetails?id=$1 [L,NC]

我现在的理解是如果我在浏览器里输入这个网址
https://abfielder.com/schemdetail/id/158
我应该
https://abfielder.com/schematicdetails?id=158
这里的考验
https://htaccess.madewithlove.com/
告诉我我的规则没问题。
第二条和第三条也很有效。
然而当我尝试访问
https://abfielder.com/schemdetail/id/158
我基本上得到了页面未找到错误。

w8biq8rn

w8biq8rn1#

好吧,我想我终于解决了这个问题,其他人谁是有问题的mod重写,他们希望有一个规则,以消除文件扩展名和其他重写一起工作的顺序问题。最后,如果你是在一个共享主机类型的事情,你可能还需要设置重写基地。这是我的htaccess文件现在看起来。

RewriteEngine On
RewriteBase /

RewriteRule ^schemdetail/id/(.*)$ schematicdetails?id=$1 [L,NC]

RewriteCond %{SERVER_PORT} !=443
RewriteRule ^(.*)$ https://abfielder.com/$1 [R=301,L]
DirectoryIndex index.php

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule (.*) $1.php [L]

这允许我有没有.php扩展名的网址。
它还允许
要转换为模式详细信息的模式详细信息/id/100?id=100

相关问题