ЧПУ не работает, в чем проблема?

skarui
На сайте с 24.07.2014
Offline
48
469

Помогите пжлст с проблемой. Делаю на сайте ЧПУ, но оно не хочет работать...

Алгоритм такой:

Есть текстовый файл. Внутри него много слов начинающихся с новой стройки. Типа: слово1, слово2, туда-сюда и т.д. Как слова, так и словосочетания. *(все слова русские, так сказать ключи).

Читается это дело вот так:

<?php

$txtfile = file('file.txt');

$strsil = $txtfile[ array_rand($txtfile) ];

unset($txtfile);

echo "<a href=\"index.php?ssilka=$strsil\">$strsil</a>";

?>

Таким образом, формируется ссылка, с определенным параметром ssilka=... (это будет если на ссылку нажать и перейти на нее).

Требуется: не так чтобы ссылка имела вид: www/index.php?ssilka=СЛОВО ИЛИ СЛОВОСОЧЕТАНИЕ

А такой вид: www/СЛОВО ИЛИ СЛОВОСОЧЕТАНИЕ

Содержимое .htaccess такое:

RewriteEngine On

КewriteRule ^.+$ index.php?ssilka=%{REQUEST_URI} [L]

Программирование, продвижение, аналитика. Работаю в агентстве Skarui (http://skarui.ru). Увлекаюсь сайтами, дорвеями и трафикогенерацией! Иногда пишу в свой блог (http://skarui.ru/blog/karuev)
Ragnarok
На сайте с 25.06.2010
Offline
239
#1


echo "<a href=\"/".urlencode($strsil)."\">{$strsil}</a>";

?

//TODO: перестать откладывать на потом
PN
На сайте с 22.08.2012
Offline
103
#2

так в чем проблема поменять вывод?

Мой совет помог? Не скупись! Bitcoin 1Lseddet1o1B6odgXQHbGaWGwRkt1Db8Ef Ethereum 0x450f1a17461e25194B7F9226cDEe70173F39e1e1
K
На сайте с 03.06.2015
Offline
45
#3

Не поможет. У него индекс не скрывается, поэтому урлы нельзя чепушить. Покажу свой


Options -Indexes # чтоб по адресу папки без индекса нельзя было посмотреть ее содержание
<IfModule mod_rewrite.c>
RewriteEngine On # вкл
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] # это редирект с ввв на без-ввв
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule \.(jpg|png|gif) assets/images/noimage.png [NC,L] # тут указываете путь до картинки которая покажет нет-фото
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L] # а тут скрывается index.php и вся работа в скрипте идет с path
</IfModule>

Потому что остальные методы потребуют переноса в хтассесс всех сущностей из вашей бд и моделей и тп. Файл будет зело огромен и лайя. А path переносит всю логику роутера внутрь скрипта.

---------- Добавлено 23.06.2015 в 12:00 ----------

UPD, не индекс не скрывается, а индекс не скрывается как обычно это для чпу на базе роутера-контроллера в скрипте.

Чтобы не маятся избегать спец-символов, используйте одинарные кавычки

echo '<a href="/',$strsil,'">',$strsil,'</a>';

MYSQL PHP JS HTML CSS SEO TXT США СССР
M
На сайте с 04.12.2013
Offline
223
#4

Сами ссылки в теге A можно не кодировать. Если вы работаете в скрипте непосредственно с исходной ссылкой (вне зависимости от того, нужный компонент находится в пути или в GET-параметре), ссылку нужно декодировать (или наоборот образец для сравнения хранить в URL-кодировке). Если вы работаете в скрипте с GET-параметром из $_GET, то декодировать не нужно, т.к. это происходит автоматически.

---------- Добавлено 23.06.2015 в 13:47 ----------

ТС передает в параметре %{REQUEST_URI}, т.е. путь с ведущим слешем. Либо его нужно отсекать, либо вместо %{REQUEST_URI} использовать $0.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий