Ste*_*lak 11 .htaccess subdirectory
我正在编写我的网站的新版本,我正试图让.htaccess正确地重写.我的新网站存储在这里:
www.example.com/storage/new/
Run Code Online (Sandbox Code Playgroud)
我需要重写这些URL:
www.example.com/storage/new/welcome/ -> index.php?action=welcome
www.example.com/storage/new/page/name/ -> index.php?action=page&url=name
www.example.com/storage/new/post/name/ -> index.php?action=post&url=name
Run Code Online (Sandbox Code Playgroud)
这是我的.htaccess文件:
RewriteEngine On
RewriteRule ^/welcome/$ index.php?action=welcome [L]
RewriteRule ^/page/([a-zA-Z0-9]+)/$ index.php?action=page&url=$1 [L]
RewriteRule ^/post/([a-zA-Z0-9]+)/$ index.php?action=post&url=$1 [L]
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用; 所有结果都找不到404.我已经尝试了一切,甚至打字www.example.com/storage/new/代替^.我在服务器root(www.example.com)中有另一个.htaccess,如下所示:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
我无法想象这会产生怎样的影响,www.example.com/storage/new/但你永远不会知道.谁能帮我这个?
Ste*_*lak 11
我不得不通过电子邮件向我的服务器管理员发送电子邮件以获得帮助,结果证明.htaccess将自己的路径视为root; 我只是删除了每个规则/之前的第^一个.我的最终.htaccess文件如下所示:
RewriteEngine On
RewriteRule ^welcome/$ index.php?action=welcome [L,QSA]
RewriteRule ^page/(.*)/$ index.php?action=page&url=$1 [L,QSA]
RewriteRule ^post/(.*)/$ index.php?action=post&url=$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)