.htaccess 除了某些特定的URL,我如何修改和重写所有传入的URL?

.htaccess 除了某些特定的URL,我如何修改和重写所有传入的URL?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我正在尝试重写一些固定页面URL的URL,其他所有内容都会被重写。我需要的是: domain.com/ domain.com/about domain.com/* (anything else) 应重定向到: /index.php /about.php /display.php?id=* 不知道怎么做。有人能帮我吗?解决了!这项工作: RewriteRule ^about$ /about.php [L] RewriteCond %{REQUEST_FILENAME} !-f Rew

我正在尝试重写一些固定页面URL的URL,其他所有内容都会被重写。我需要的是:

domain.com/
domain.com/about
domain.com/* (anything else)    
应重定向到:

/index.php
/about.php
/display.php?id=*
不知道怎么做。有人能帮我吗?

解决了!这项工作:

RewriteRule ^about$ /about.php [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /display.php?id=$1 [L]
索引页面是通过使用(++)而不是(.*)来处理的,这使得站点配置可以正常地将请求转发到index.php,因此htaccess不会尝试将请求转发到display.php。

解决了!这项工作:

RewriteRule ^about$ /about.php [L]

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

索引页面是通过使用(++)而不是(.*)来处理的,这使站点配置可以正常地将请求转发到index.php,因此。htaccess不会尝试将请求转发到display.php。

与您编写的完全一样,使用前两条规则。完全与我编写的一样什么?抱歉…?按顺序使用三条规则,并通过使用L标志防止在前两种情况下触发第三条规则。(你确实读过这个链接,是吗?)也许我应该解释更多:RewriteRule^about$/about.php[L]很简单,而且效果很好。但这是我唯一能去工作的东西。我找不到一种方法来处理索引页,因为URL中没有任何可以进行正则表达式匹配的内容。它返回到自身并转到/display.php?id=display.php“我找不到一种方法来对索引页执行此操作,因为URL中没有进行正则表达式匹配的内容。”如果regexp
^about$
匹配
about
,那么
^$
匹配的内容是什么?与您编写的内容完全相同,使用前两条规则。完全与我编写的内容相同?抱歉…?按顺序使用三条规则,并通过使用L标志防止在前两种情况下触发第三条规则。(你确实读过这个链接,是吗?)也许我应该解释更多:RewriteRule^about$/about.php[L]很简单,而且效果很好。但这是我唯一能去工作的东西。我找不到一种方法来处理索引页,因为URL中没有任何可以进行正则表达式匹配的内容。它返回到自身并转到/display.php?id=display.php“我找不到一种方法来对索引页执行此操作,因为URL中没有可以对其进行正则表达式匹配的内容。”如果regexp
^about$
匹配
about
,那么
^$
匹配的内容是什么?尽管我试图让您访问
RewriteRule^$/index.php[L]
:D这也行得通,尽管我试图让您访问
RewriteRule^$/index.php[L]
:D