Specifi c URL перенаправления на домашнюю страницу - PullRequest
2 голосов
/ 11 апреля 2020

Я создаю небольшой скрипт в Codeigniter. Я хочу интегрировать OneSignal для уведомления pu sh. Но проблема в том, что ниже URL перенаправления на домашнюю страницу.

https://example.com/OneSignalSDKWorker.js?appId=1234567890xxxxx-xxxxx-xxx

Вот мой полный .htaccess код

DirectoryIndex index.php
RewriteEngine on


RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]


<IfModule mod_gzip.c>
    mod_gzip_on       Yes
    mod_gzip_dechunk  Yes
    mod_gzip_item_include file      \.(html?|txt|css|js|php|pl|jpg|png|gif)$
    mod_gzip_item_include handler   ^cgi-script$
    mod_gzip_item_include mime      ^text/.*
    mod_gzip_item_include mime      ^application/x-javascript.*
    mod_gzip_item_exclude mime      ^image/.*
    mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>

А вот мой основной c Codeigniter route

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

$route['default_controller'] = 'controller';
$route['404_override'] = '';
$route['translate_uri_dashes'] = FALSE;

//first route
$route['(:any)/(:any)'] = 'controller/method/$1/$2';
//second route
$route['(:any)'] = 'controller/method/$1';

здесь мой контроллер может принимать один или два аргумента. Если я передаю только первые аргументы (т.е. отправляю маршрут) и проверяю, нет ли его в моей базе данных, он будет перенаправлен на домашнюю страницу. Точно так же для первой проверки маршрута оба отсутствуют, он будет перенаправлен на домашнюю страницу.

Но проблема в том, что когда я пытаюсь получить доступ к этому https://example.com/OneSignalSDKWorker.js?appId=1234567890xxxxx-xxxxx-xxx, он перенаправляет на домашнюю страницу.

Итак, мой вопрос, как исключить его из правила перенаправления?

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Я не уверен, но попробуйте

Добавьте эту строку перед первым маршрутом

$route['OneSignalSDKWorker.js(:any)'] = 'OneSignalSDKWorker.js$1';
0 голосов
/ 11 апреля 2020

Вы можете изменить свою линию:

RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico)

на

RewriteCond $1 !^(index\.php|images|css|js|robots\.txt|favicon\.ico|OneSignalSDKWorker\.js)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...