如何删除部分 URI/将不存在的目录重定向到现有目录而不更改 URI
How to remove part of URI/ Redirecting a non-existent directory to an existing directory without changing the URI
我写了 7 个 URL:
http://www.example.com/TERMS/file
我想要的是:
问题是:
- 文件不在我的主目录中,所以它是一个不存在的路径,导致 error:404 当我尝试用 mod_rewrite
正常重写它时
我使用以下方法关闭了文件扩展名:
> RewriteCond %{REQUEST_FILENAME} !-d RewriteCond
> %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ .php RewriteCond
> %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/
> RewriteRule ^(([^/]+/)*[^.]+)\.php / [R=301,L]
我认为这与我尝试进行的重写造成了一些冲突。
如果有帮助,我也有 mod_rewrite 也在地址上强制 www
我曾尝试在此站点上寻找解决方案并尝试了 10 多种不同的方法,但 none 对我有用。
不,都不是
> RewriteRule ^(.*)/TERMS/(.*) /
也不是
> (.+)
变体对我有用。
您可以在 DOCUMENT_ROOT/.htaccess
文件中其他规则之后使用此规则:
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?!TERMS/).+)$ /TERMS/ [L,NC]
我写了 7 个 URL:
http://www.example.com/TERMS/file
我想要的是:
问题是:
- 文件不在我的主目录中,所以它是一个不存在的路径,导致 error:404 当我尝试用 mod_rewrite 正常重写它时
我使用以下方法关闭了文件扩展名:
> RewriteCond %{REQUEST_FILENAME} !-d RewriteCond > %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ .php RewriteCond > %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.#?\ ]+\.php([#?][^\ ]*)?\ HTTP/ > RewriteRule ^(([^/]+/)*[^.]+)\.php / [R=301,L]
我认为这与我尝试进行的重写造成了一些冲突。
如果有帮助,我也有 mod_rewrite 也在地址上强制 www
我曾尝试在此站点上寻找解决方案并尝试了 10 多种不同的方法,但 none 对我有用。
不,都不是
> RewriteRule ^(.*)/TERMS/(.*) /
也不是
> (.+)
变体对我有用。
您可以在 DOCUMENT_ROOT/.htaccess
文件中其他规则之后使用此规则:
# If the request is not for a valid directory
RewriteCond %{REQUEST_FILENAME} !-d
# If the request is not for a valid file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^((?!TERMS/).+)$ /TERMS/ [L,NC]