HTACCESS Переписать на поддомен + переписать URL - PullRequest
0 голосов
/ 01 октября 2018

У меня вопрос по поводу моего HTACCESS.Я экспериментировал с моим HTACCESS некоторое время и, наконец, заставил переписывать URL-адреса работать - в сочетании с моим собственным написанным php-маршрутизатором.

Я хочу переписать URL-адреса не только для того, чтобы они выглядели чище, но иКроме того, потому что я использую его для API.Поэтому я могу сделать GET / POST / PUT / DELETE для api / users и добавить нового пользователя, обновить или удалить и т. Д.

Теперь я использую эти строки для перезаписи URL:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule .*/api/(.*)$ api.php [QSA,L]

для субдомена, перенаправляющего в папку, которую я использую

RewriteCond %{HTTP_HOST} ^demo\.example\.com [NC]
RewriteRule (.*) http://example.com/demo/$1 [L,R=301]

Единственная проблема сейчас заключается в том, что я не могу объединить их.Я хотел бы иметь URL-адрес, как:

demo.domain.com / api / user

Если я использую два отдельно друг от друга, они работают, как ожидалось,но объединенная перезапись URL для / api всегда дает сбой.Вероятно, это связано с перезаписью субдомена, но я не вижу, как я могу объединить их.

1 Ответ

0 голосов
/ 10 октября 2018

Я нашел решение, также я расширил htacces .. Вот мой файл htaccess:

# No Caching for page files
<filesMatch "\.(html|htm|js|css|php)$">
<IfModule mod_headers.c>
    Header set Cache-Control "no-cache, no-store, must-revalidate"
    Header set Pragma "no-cache"
    Header set Expires 0
</IfModule>
</filesMatch>

# Error pages
ErrorDocument 404 https://%{HTTP_HOST}/#/404
ErrorDocument 500 https://%{HTTP_HOST}/#/500

RewriteEngine On

# Rewrite www to non
RewriteCond %{HTTP_HOST} !=""
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R,L]

# Rewrite http to https
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

# Ignore conditions for files and folders
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteBase /

# Rewrite /api to api.php
RewriteRule ^api/(.+)$ api/api.php [QSA,L]

# Rewrite /downloads to downloads.php
# RewriteRule ^download/(.+)$ download/download.php [QSA,L]
...