Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Napisanie nowej reguły przepisywania URL
Forum PHP.pl > Forum > Przedszkole
Imrahil
Witam,
jest strona xyz.pl na której stosowane jest przepisywanie adresów URL na przyjazne Google.

Jest taka podstrona xyz.pl/koncerty.html i na tejże podstronie generowane są linki do szczegółów poszczególnych wydarzeń, które otwierają się jako nowa podstrona (dzieje się to automatycznie w ramach wtyczki MF Gig Calendar).

Problem z tymi generowanymi podstronami jest taki, że one nie posiadają przyjaznych adresów, np. xyz.pl/koncerty.html?event_id=12

Czy moglibyście mi pomóc napisać nową regułę, która przepisze te generowane URL na przyjazne (wracając do powyższego przykładu, np. na xyz.pl/koncerty/wydarzenie-12.html? Podobnie sytuacja wygląda w przypadku archiwów koncertów.

Pozdrawiam smile.gif
nospor
W necie jest cała masa kursow, po polsku, za darmo, gdzie opisane jest to co chcesz zrobic. Zajrzał choć do jednego? Czy może Twoj post sluzy jedynie do spamowania swoją stroną?
Imrahil
Tak, spamuje swoją stroną dotyczącą muzyki jazzowej na forum dla programistów. Znam na szczęście lepsze metody promowania stron smile.gif

Od tego są fora, żeby pomagać w przypadku konkretnych problemów.

Wymyśliłem takie coś, jednak nie chce to działać... Czy mógłbym prosić o wskazanie co jest źle?

Kod
wydarzenie-([0-9]{1,})/?$     index.php?page_id=17&event_id=$1
nospor
Cytat
Tak, spamuje swoją stroną dotyczącą muzyki jazzowej na forum dla programistów. Znam na szczęście lepsze metody promowania stron
Moze ty znasz, ale cala masa spamerow, ktora zalewa to forum, najwyraźniej nie. smile.gif

Cytat
Wymyśliłem takie coś, jednak nie chce to działać... Czy mógłbym prosić o wskazanie co jest źle?
No ale pokaz caly kod, a nie jakis kawalek wyrwany z konktekstu... Bo to co pokazales nie ma prawa dzialac w takiej postaci wiec zakladam ze wyciales kawalek. No i zakladam, ze dales to do pliku .htaccess ?
Imrahil
Strona jest na wordpressie, a regułę pisałem za pośrednictwem wtyczki Rewrite zatem jest to w zasadzie cały kod.



Nie wiem czy jest to w jakiś sposób istotne, ale wpisanie URL xyz.pl/index.php?page_id=17&event_id=11 przekierowuje na adres xyz.pl/koncerty.html?event_id=11
nospor
No ale ty chciales przekierowywac
koncerty/wydarzenie-
a w regule dajesz
wydarzenie-
Imrahil
Nie ma to w sumie dla mnie aż tak dużego znaczenia która z tych form będzie ostateczną. Tamto dałem tylko jako przykład. Może być też xyz.pl/wydarzenie-11.html. Tamta zasada którą wymyśliłem nie działa natomiast w ogóle.
Pyton_000
musisz pokazać cały wygenerowany .htaccess
Imrahil
Mój plik wygenerowany przez Wordpressa wygląda w ten sposób:
Kod
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress


Czy wiecie może gdzie są przechowywane te wszystkie reguły, które wyświetlają mi się we wtyczce, której screen wrzuciłem kilka postów wyżej?
thek
W tabeli wp_options poszukaj wpierw...
Imrahil
Szukałem w tej tabeli już wcześniej i nie znalazłem:

thek
Jeśli nie ma w wp_options, to znaczy, że wtyczka zapewne ma własną tabelę, niezależną od wp_options. Ale w takim wypadku nie dorobiłem się jeszcze zdolności jasnowidzenia by Ci odpowiedzieć smile.gif

EDIT: a sprawdziłeś całą tę tabelę, czy tylko pierwszą stronę? Ogólnie poszukaj czy istnieją option_name o wartości "rewrite_rules", bo to one trzymają reguły.
Imrahil
Tak, przejrzenie dalszych stron zdecydowanie poprawiło sytuację ;p Sory za noobowy błąd. Tylko nie wiem czy cokolwiek z tego odczytacie... Wyciąłem środkową, nieistoną część, bo post się nie mieścił...

Kod
a:161:{s:13:"feed/mfgigcal";s:23:"index.php?feed=mfgigcal";s:12:"mfgigcal.xml";s:23:"index.php?feed=mfgigcal";s:18:"sitemap_index.xml$";s:19:"index.php?sitemap=1";s:30:"([^/]+?)-sitemap([0-9]+)?.xml$";s:51:"index.php?sitemap=$matches[1]&sitemap_n=$matches[2]";s:23:"([a-z]+)?-?sitemap.xsl$";s:25:"index.php?xsl=$matches[1]";s:61:"nova_menu_item_label/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$";s:59:"index.php?nova_menu_item_label=$matches[1]&feed=$matches[2]";s:56:"nova_menu_item_label/([^/]+)/(feed|rdf|rss|rss2|atom)/?$";s:59:"index.php?nova_menu_item_label=$matches[1]&feed=$matches[2]";s:49:"nova_menu_item_label/([^/]+)/page/?([0-9]{1,})/?$";s:60:"index.php?nova_menu_item_label=$matches[1]&paged=$matches[2]";s:31:"nova_menu_item_label/([^/]+)/?$";s:42:"index.php?nova_menu_item_label=$matches[1]";s:43:"menu/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$";s:43:"index.php?menu=$matches[1]&feed=$matches[2]";s:38:"menu/(.+?)/(feed|rdf|rss|rss2|atom)/?$";s:43:"index.php?menu=$matches[1]&feed=$matches[2]";s:31:"menu/(.+?)/page/?([0-9]{1,})/?$";s:44:"index.php?menu=$matches[1]&paged=$matches[2]";s:13:"menu/(.+?)/?$";s:26:"index.php?menu=$matches[1]";s:32:"item/[^/]+/attachment/([^/]+)/?$";s:32:"index.php?attachment=$matches[1]";s:42:"item/[^/]+/attachment/([^/]+)/trackback/?$";s:37:"index.php?attachment=$matches[1]&tb=1";s:62:"item/[^/]+/attachment/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$";s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";s:57:"item/[^/]+/attachment/([^/]+)/(feed|rdf|rss|rss2|atom)/?$";s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";s:57:"item/[^/]+/attachment/([^/]+)/comment-page-([0-9]{1,})/?$";s:50:"index.php?attachment=$matches[1]&cpage=$matches[2]";s:25:"item/([^/]+)/trackback/?$";s:31:"index.php?item=$matches[1]&tb=1";s:33:"item/([^/]+)/page/?([0-9]{1,})/?$";s:44:"index.php?item=$matches[1]&paged=$matches[2]";s:40:"item/([^/]+)/comment-page-([0-9]{1,})/?$";s:44:"index.php?item=$matches[1]&cpage=$matches[2]";s:25:"item/([^/]+)(/[0-9]+)?/?$";s:43:"index.php?item=$matches[1]&page=$matches[2]";s:21:"item/[^/]+/([^/]+)/?$";s:32:"index.php?attachment=$matches[1]";s:31:"item/[^/]+/([^/]+)/trackback/?$";s:37:"index.php?attachment=$matches[1]&tb=1";s:51:"item/[^/]+/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$";s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";s:46:"item/[^/]+/([^/]+)/(feed|rdf|rss|rss2|atom)/?$";s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";s:46:"item/[^/]+/([^/]+)/comment-page-([0-9]{1,})/?$";s:50:"index.php?attachment=$matches[1]&cpage=$matches[2]";s:53:"(bez-kategorii)/(?:feed/)?(feed|rdf|rss|rss2|atom)/?$";s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";s:46:"[^/]+.html/([^/]+)/(feed|rdf|rss|rss2|atom)/?$";s:49:"index.php?attachment=$matches[1]&feed=$matches[2]";s:46:"[^/]+.html/([^/]+)/comment-page-([0-9]{1,})/?$";s:50:"index.php?attachment=$matches[1]&cpage=$matches[2]";s:25:"wydarzenie-([0-9]{1,})/?$";s:41:"index.php?page_id=17&event_id=$matches[1]";}


Generalnie jest to chyba to samo co we wrzuconym przeze mnie screenie tylko w dużo bardziej nieczytelnej wersji...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.