tilda ~用户文件夹的apache rewriterule
apache rewriterule for tilda ~user folder
我试图让 domain.com/~userX 文件夹在不使用 userdir 的情况下工作。
当 ~userX 文件夹位于服务器 doc 根 doc 文件夹中时,它工作正常,但有太多需要将它们放在子文件夹中,即 /homepages 所以我得到的最好的是在 .htaccess 中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^~ "/homepages/%{REQUEST_URI}"
</IfModule>
Options -Indexes
使用尾部斜杠可以正常工作:
domain.com/~userX/
如果没有尾部斜杠,它会自动重定向到:
http://ddomain.com/homepages/~userX/
我不想要,所以我想我会关闭目录斜线:
<Directory /var/www/domain/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
DirectorySlash Off
</Directory>
尾部斜杠仍然有效,但没有尾部斜杠我现在得到:
Forbidden
You don't have permission to access this resource.
错误日志:
无法提供目录 /var/www/domain/public_html/homepages/~userX
这让我头疼,我已经搜索了几天,我真的被困住了:/
非常感谢任何帮助。
第一种方法:
尝试:
RewriteRule ^(~[^\/]+)(?:\/(.*)|$) /homepages// [L]
尾部斜杠是否存在,它在内部使用尾部斜杠重定向。
问题:
- 我认为,如果用户在/homepage 目录的sub-directory 中输入带斜线的URL,它可能无法正常工作。
第二种方法:
尝试:
RewriteRule ^(~[^\/]+)$ // [R=302,L]
RewriteRule ^~ /homepages/%{REQUEST_URI} [L]
第三种方法:
这可能比第一个和第二个解决方案更有效
RewriteRule ^(~[^\/]+)(?:\/(.*)|$) /homepages// [PT,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^\/])$ // [L]
我试图让 domain.com/~userX 文件夹在不使用 userdir 的情况下工作。
当 ~userX 文件夹位于服务器 doc 根 doc 文件夹中时,它工作正常,但有太多需要将它们放在子文件夹中,即 /homepages 所以我得到的最好的是在 .htaccess 中:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^~ "/homepages/%{REQUEST_URI}"
</IfModule>
Options -Indexes
使用尾部斜杠可以正常工作: domain.com/~userX/
如果没有尾部斜杠,它会自动重定向到: http://ddomain.com/homepages/~userX/
我不想要,所以我想我会关闭目录斜线:
<Directory /var/www/domain/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
DirectorySlash Off
</Directory>
尾部斜杠仍然有效,但没有尾部斜杠我现在得到:
Forbidden
You don't have permission to access this resource.
错误日志:
无法提供目录 /var/www/domain/public_html/homepages/~userX
这让我头疼,我已经搜索了几天,我真的被困住了:/
非常感谢任何帮助。
第一种方法:
尝试:
RewriteRule ^(~[^\/]+)(?:\/(.*)|$) /homepages// [L]
尾部斜杠是否存在,它在内部使用尾部斜杠重定向。
问题:
- 我认为,如果用户在/homepage 目录的sub-directory 中输入带斜线的URL,它可能无法正常工作。
第二种方法:
尝试:
RewriteRule ^(~[^\/]+)$ // [R=302,L]
RewriteRule ^~ /homepages/%{REQUEST_URI} [L]
第三种方法:
这可能比第一个和第二个解决方案更有效
RewriteRule ^(~[^\/]+)(?:\/(.*)|$) /homepages// [PT,L]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^\/])$ // [L]