DirectAdmin Apache - .htaccess 重写

DirectAdmin Apache - .htaccess rewrite(s)

我在设置重写时遇到问题,希望有人知道答案。

这是我目前在 .htaccess 中使用的代码:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /point/to/dir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\d+/.*)$ https://domain.ext/point/to/dir/module/status.php?id= [L,QSA]

客户端正在向服务器请求域.ext/point/to/dir/,应将其重写为https://domain.ext/point/to/dir/module/status.php.

可能在 /point/to/dir/ 请求的末尾添加了一个查询,应该附加到 https://domain.ext/point/to/dir/module/status.php。 /point/to/dir/ 是服务器上不存在的位置。

无论我做什么,我总是收到内部服务器错误(不正确的 .htaccess configuration/syntax)或 404。希望有人能帮忙。

使用您显示的示例,按照以下方式获取 htaccess 规则文件。确保将路径从 point/to/dir 更改为实际路径(不要将 / 放在它的前面,否则规则将不起作用)。

这是假设您的 point/do/dir 有模块文件夹并且 index.php 也在模块文件夹内。

确保在测试您的 URL 之前清除您的浏览器缓存。

Options +FollowSymLinks
RewriteEngine on
RewriteBase /point/to/dir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(point/to/dir)/(.*)/?$ https://domain.ext//module/status.php?id= [NC,L,QSA]


OR 如果您使用相同的域名,则无需在右侧部分提及完整的 url重写,然后按照以下方式进行,确保一次只使用以上或以下规则。

Options +FollowSymLinks
RewriteEngine on
RewriteBase /point/to/dir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(point/to/dir)/(.*)/?$ /module/status.php?id= [NC,L,QSA]