URL перезаписи htaccess не работает с кодом codeigniter - PullRequest
0 голосов
/ 14 марта 2019

Я пытаюсь переписать URL-адреса так, чтобы / foo -> index.php.

index.php работал на codeigniter 3. bar.php - автономный файл php.

Это отрывок из моего .htaccess:

//Test 1. Bar.php displayed. This works as exptected. 
RewriteRule ^/?foo1/?$ /bar.php [QSA,L] 


//Test 2. Redirects succesfully to index.php. Works as expected.
RewriteRule ^/?foo2/?$ /index.php [R=301,QSA,L]    


//Test 3. Goes to codeigniter 404 page and does NOT display the homepage. 
Does not work as expected
RewriteRule ^/?foo3/?$ /index.php [QSA,L] 

Почему тест 3 не отображается должным образом?В моем коде codeigniter есть что-то, что не работает при попытке переписать URL-адреса.Любые идеи, как это исправить?Есть ли обходной путь?

Полное раскрытие: долгосрочная цель состоит в том, чтобы иметь возможность иметь URL со структурой, подобной этой: example.com/foo1/foo2/foo3/?query1=xxxx&query2=yyyy переписать к примеру.com / bar / bar1.php? queryA = foo2 & queryB = foo3 & query1 = xxxx & query2 = yyyy

Можно ли это "легко" сделать в рамках codeigniter (route.php), а не в htaccess?С точки зрения времени разработки предпочтение будет отдано на работу через .htaccess.

1 Ответ

0 голосов
/ 15 марта 2019

Взгляните на https://gist.github.com/keithmorris/3023560

Это включает довольно стандартный файл htaccess, который я использую во всех своих проектах. Затем вы используете функциональность маршрутизации CI, чтобы определить, куда идут разные биты.

Имейте в виду, что с помощью CI вы можете передавать дополнительные элементы в URL, например example.com/foo1/foo2/foo3/query1/query2.

.
...