.htaccess在url包含路径时不工作

.htaccess在url包含路径时不工作,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我在stackoverflow和许多网站上搜索过这个问题的答案。所以如果stackoverflow已经回答了,请不要开枪打我。我被卡住了 我只需要一个简单的重定向,将我的网站名称之后的任何内容放入$target的querystring中,除非url中包含路径 当给定路径时,它不起作用 乙二醇 mysite.com.au/home to mysite.com.au/?target=home mysite.com.au/home/至mysite.com.au/?target=home mysite.

我在stackoverflow和许多网站上搜索过这个问题的答案。所以如果stackoverflow已经回答了,请不要开枪打我。我被卡住了

我只需要一个简单的重定向,将我的网站名称之后的任何内容放入$target的querystring中,除非url中包含路径

当给定路径时,它不起作用

乙二醇

mysite.com.au/home to mysite.com.au/?target=home mysite.com.au/home/至mysite.com.au/?target=home mysite.com.au/home/something至mysite.com.au/home/something mysite.com.au/home/something/至mysite.com.au/home/something mysite.com.au/home/something/file.php到mysite.com.au/home/something/file.php 下面是我的.htaccess文件。它仅适用于上述条件1

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ ?target=$1
有人能告诉我一个更好的/正确的url重定向方法,或者知道如何做到这一点吗? 我不想使用特定的301重定向


感谢您提供的帮助。

您可以将此代码放入htaccess中,htaccess必须位于文档根文件夹中

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /?target=$1 [L]

/home/something/是现有路径吗?…如果/home/something存在,它是否有自己的.htaccess文件?我在根目录中只有一个.htaccess文件。对于/home/something,如果它存在,我希望显示任何index.php的内容。如果它不存在,我希望返回404错误。基本上,任何类似mysite.com/home的东西我都希望通过$target查询字符串重定向。任何有更深路径的东西我都希望正常的行为,没有任何东西被重定向。如果你没有其他重写规则,你上面发布的应该可以正常工作,除了target=home/上的尾部斜杠。这里面还有什么吗?谢谢Justin。除非url为mysite.com/something且目录something存在,否则此选项有效。然后显示根文件夹中的my index.php,但不显示任何css。知道发生了什么吗?例如,craigieburncommunity.com.au/home重定向回index.php,并获得[目标]home。craigieburncommunity.com.au/home/blah按预期给出404错误,因为该目录不存在。craigieburncommunity.com.au/ui似乎显示了我的index.php,但缺少css。这是一个有效路径。craigieburncommunity.com.au/home重定向回index.php,并获得[target]home,这不是您想要的?关于css问题,这是因为所有html链接图像、javascript、css和href链接都使用相对路径而不是绝对路径。为了解决这个问题,您可以在html标记后添加这一行:对不起,是的,我确实希望Craigieburncomunity.com.au/home重定向到index.php,并获得[target]home。我应该说得更清楚一些:问题是当我访问craigieburncommunity.com.au/ui时,它不知何故显示了我根目录中的index.php。但是,如果我在craigieburncommunity.com.au/ui中创建index.php,问题就迎刃而解了。我将使内容为空或类似404错误。除非你知道一个更优雅的解决方案,我不需要在我所有的文件夹中创建index.php?不管是什么情况,我想我基本上都有我需要的。我真的很感谢你的帮助。我将把你的答案标为解决办法。