Regex 如何在htaccess中重写任何类型的字符串?
我正在开发一个简单的路由系统,我需要制定一个重写规则,其中所有内容(没有异常)都作为查询参数传递给我的主php文件 但是,^(+)$和^(+.*)$似乎不起作用。使用它们返回的唯一内容是“/index.php” 唯一有效的方法似乎是^([a-zA-Z0-9/-]*)等,但问题是:我希望此表达式匹配所有Unicode字符,我假设手动完成此操作的表达式将非常缓慢且不美观 那么…为什么这些据称显而易见的表达不能正常工作呢 提前谢谢Regex 如何在htaccess中重写任何类型的字符串?,regex,.htaccess,routing,Regex,.htaccess,Routing,我正在开发一个简单的路由系统,我需要制定一个重写规则,其中所有内容(没有异常)都作为查询参数传递给我的主php文件 但是,^(+)$和^(+.*)$似乎不起作用。使用它们返回的唯一内容是“/index.php” 唯一有效的方法似乎是^([a-zA-Z0-9/-]*)等,但问题是:我希望此表达式匹配所有Unicode字符,我假设手动完成此操作的表达式将非常缓慢且不美观 那么…为什么这些据称显而易见的表达不能正常工作呢 提前谢谢 RewriteEngine on RewriteRule ^(.*)$
RewriteEngine on
RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]
您可以使用此规则:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php?path=%{REQUEST_URI} [L,QSA]
@anubhava甚至根/URL都不起作用。让我澄清一下:除了“index.php”之外,没有任何东西被传递到“path”查询字符串参数。这适用于我尝试输入的任何URL。这是因为上面的2
RewriteCond
行阻止了规则执行两次,而您的规则是这样的。第二次REQUEST\uI
变成index.php
因此,您的getpath
参数为index.php
,如果它成功,