Version Description
- Fix no group created on install
- Fix missing export key on install
- Add 408 HTTP code, props to radenui
- Fix imported URLs set to regex, props to alpipego
- Fix sorting of URLs, props to JordanReiter
- Don't cache 407s, props to rmarchant
- Abort redirect exit if no redirection happened, props to junc
Download this release
Release Info
Developer | johnny5 |
Plugin | Redirection |
Version | 2.5 |
Comparing to | |
See all releases |
Code changes from version 2.4.5 to 2.5
- actions/random.php +1 -0
- actions/url.php +5 -2
- fileio/csv.php +6 -1
- locale/redirection.pot +70 -70
- matches/referrer.php +1 -0
- models/database.php +1 -1
- models/htaccess.php +4 -4
- models/redirect.php +2 -2
- modules/wordpress.php +6 -1
- readme.txt +12 -3
- redirection-admin.php +4 -0
- redirection.php +1 -1
- view/item-list.php +1 -1
actions/random.php
CHANGED
@@ -14,6 +14,7 @@ class Random_Action extends Red_Action {
|
|
14 |
301 => get_status_header_desc( 301 ),
|
15 |
302 => get_status_header_desc( 302 ),
|
16 |
307 => get_status_header_desc( 307 ),
|
|
|
17 |
);
|
18 |
}
|
19 |
|
14 |
301 => get_status_header_desc( 301 ),
|
15 |
302 => get_status_header_desc( 302 ),
|
16 |
307 => get_status_header_desc( 307 ),
|
17 |
+
308 => get_status_header_desc( 308 ),
|
18 |
);
|
19 |
}
|
20 |
|
actions/url.php
CHANGED
@@ -10,11 +10,14 @@ class Url_Action extends Red_Action {
|
|
10 |
301 => get_status_header_desc( 301 ),
|
11 |
302 => get_status_header_desc( 302 ),
|
12 |
307 => get_status_header_desc( 307 ),
|
|
|
13 |
);
|
14 |
}
|
15 |
|
16 |
function process_before( $code, $target ) {
|
17 |
-
wp_redirect( $target, $code );
|
18 |
-
|
|
|
|
|
19 |
}
|
20 |
}
|
10 |
301 => get_status_header_desc( 301 ),
|
11 |
302 => get_status_header_desc( 302 ),
|
12 |
307 => get_status_header_desc( 307 ),
|
13 |
+
308 => get_status_header_desc( 308 ),
|
14 |
);
|
15 |
}
|
16 |
|
17 |
function process_before( $code, $target ) {
|
18 |
+
$redirect = wp_redirect( $target, $code );
|
19 |
+
if ( $redirect ) {
|
20 |
+
die();
|
21 |
+
}
|
22 |
}
|
23 |
}
|
fileio/csv.php
CHANGED
@@ -25,10 +25,15 @@ class Red_Csv_File extends Red_FileIO {
|
|
25 |
$line->get_title(),
|
26 |
);
|
27 |
|
28 |
-
|
|
|
29 |
}
|
30 |
}
|
31 |
|
|
|
|
|
|
|
|
|
32 |
function load( $group, $data, $filename = '' ) {
|
33 |
$count = 0;
|
34 |
$file = fopen( $filename, 'r' );
|
25 |
$line->get_title(),
|
26 |
);
|
27 |
|
28 |
+
$csv = array_map( array( $this, 'escape_csv' ), $csv );
|
29 |
+
fwrite( $stdout, join( $csv, ',') );
|
30 |
}
|
31 |
}
|
32 |
|
33 |
+
private function escape_csv( $item ) {
|
34 |
+
return '"'.str_replace( '"', '""', $item ).'"';
|
35 |
+
}
|
36 |
+
|
37 |
function load( $group, $data, $filename = '' ) {
|
38 |
$count = 0;
|
39 |
$file = fopen( $filename, 'r' );
|
locale/redirection.pot
CHANGED
@@ -15,219 +15,219 @@ msgstr ""
|
|
15 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
16 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n\n"
|
17 |
|
18 |
-
#: matches/login.php:
|
19 |
msgid "URL and login status"
|
20 |
msgstr ""
|
21 |
|
22 |
-
#: matches/login.php:
|
23 |
msgid "The target URL will be chosen from one of the following URLs, depending if the user is logged in or out. Leaving a URL blank means that the user is not redirected."
|
24 |
msgstr ""
|
25 |
|
26 |
-
#: matches/login.php:
|
27 |
msgid "Logged In"
|
28 |
msgstr ""
|
29 |
|
30 |
-
#: matches/login.php:
|
31 |
msgid "Logged Out"
|
32 |
msgstr ""
|
33 |
|
34 |
-
#: matches/referrer.php:
|
35 |
msgid "URL and referrer"
|
36 |
msgstr ""
|
37 |
|
38 |
-
#: matches/referrer.php:
|
39 |
msgid "Referrer"
|
40 |
msgstr ""
|
41 |
|
42 |
-
#: matches/referrer.php:
|
43 |
msgid "Regex"
|
44 |
msgstr ""
|
45 |
|
46 |
-
#: matches/referrer.php:
|
47 |
msgid "HTTP Code"
|
48 |
msgstr ""
|
49 |
|
50 |
-
#: matches/referrer.php:
|
51 |
msgid "Matched"
|
52 |
msgstr ""
|
53 |
|
54 |
-
#: matches/referrer.php:
|
55 |
msgid "Not matched"
|
56 |
msgstr ""
|
57 |
|
58 |
-
#: matches/url.php:
|
59 |
msgid "URL only"
|
60 |
msgstr ""
|
61 |
|
62 |
-
#: matches/url.php:
|
63 |
msgid "Target URL"
|
64 |
msgstr ""
|
65 |
|
66 |
-
#: matches/user-agent.php:
|
67 |
msgid "URL and user agent"
|
68 |
msgstr ""
|
69 |
|
70 |
-
#: matches/user-agent.php:
|
71 |
msgid "FeedBurner"
|
72 |
msgstr ""
|
73 |
|
74 |
-
#: matches/user-agent.php:
|
75 |
msgid "Internet Explorer"
|
76 |
msgstr ""
|
77 |
|
78 |
-
#: matches/user-agent.php:
|
79 |
msgid "FireFox"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: matches/user-agent.php:
|
83 |
msgid "Opera"
|
84 |
msgstr ""
|
85 |
|
86 |
-
#: matches/user-agent.php:
|
87 |
msgid "Safari"
|
88 |
msgstr ""
|
89 |
|
90 |
-
#: matches/user-agent.php:
|
91 |
msgid "iPhone"
|
92 |
msgstr ""
|
93 |
|
94 |
-
#: matches/user-agent.php:
|
95 |
msgid "iPad"
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: matches/user-agent.php:
|
99 |
msgid "Android"
|
100 |
msgstr ""
|
101 |
|
102 |
-
#: matches/user-agent.php:
|
103 |
msgid "Nintendo Wii"
|
104 |
msgstr ""
|
105 |
|
106 |
-
#: matches/user-agent.php:
|
107 |
msgid "User Agent"
|
108 |
msgstr ""
|
109 |
|
110 |
-
#: models/pager.php:
|
111 |
msgid "Type"
|
112 |
msgstr ""
|
113 |
|
114 |
-
#: models/pager.php:
|
115 |
msgid "URL"
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: models/pager.php:
|
119 |
msgid "Hits"
|
120 |
msgstr ""
|
121 |
|
122 |
-
#: models/pager.php:
|
123 |
msgid "Last Access"
|
124 |
msgstr ""
|
125 |
|
126 |
-
#: models/pager.php:
|
127 |
msgid "Edit"
|
128 |
msgstr ""
|
129 |
|
130 |
-
#: models/pager.php:
|
131 |
msgid "Delete"
|
132 |
msgstr ""
|
133 |
|
134 |
-
#: models/pager.php:
|
135 |
msgid "Disable"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: models/pager.php:
|
139 |
msgid "Enable"
|
140 |
msgstr ""
|
141 |
|
142 |
-
#: models/pager.php:
|
143 |
msgid "Reset Hits"
|
144 |
msgstr ""
|
145 |
|
146 |
-
#: models/pager.php:
|
147 |
msgid "No group filter"
|
148 |
msgstr ""
|
149 |
|
150 |
-
#: models/pager.php:
|
151 |
msgid "Name"
|
152 |
msgstr ""
|
153 |
|
154 |
-
#: models/pager.php:
|
155 |
msgid "Redirects"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: models/pager.php:
|
159 |
msgid "Module"
|
160 |
msgstr ""
|
161 |
|
162 |
-
#: models/pager.php:
|
163 |
msgid "View Redirects"
|
164 |
msgstr ""
|
165 |
|
166 |
-
#: models/pager.php:
|
167 |
msgid "Unknown"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: models/pager.php:
|
171 |
msgid "All modules"
|
172 |
msgstr ""
|
173 |
|
174 |
-
#: models/pager.php:
|
175 |
msgid "Add redirect"
|
176 |
msgstr ""
|
177 |
|
178 |
-
#: models/pager.php:
|
179 |
msgid "Date"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: models/pager.php:
|
183 |
msgid "Source URL"
|
184 |
msgstr ""
|
185 |
|
186 |
-
#: models/pager.php:
|
187 |
msgid "IP"
|
188 |
msgstr ""
|
189 |
|
190 |
-
#: models/pager.php:
|
191 |
msgid "Show only this IP"
|
192 |
msgstr ""
|
193 |
|
194 |
-
#: models/pager.php:
|
195 |
msgid "Configure"
|
196 |
msgstr ""
|
197 |
|
198 |
-
#: models/redirect.php:
|
199 |
msgid "Source and target URL must be different"
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: models/redirect.php:
|
203 |
msgid "You can only redirect from a relative URL (<code>%s</code>) on this domain (<code>%s</code>)."
|
204 |
msgstr ""
|
205 |
|
206 |
-
#: models/redirect.php:
|
207 |
msgid "Invalid group when creating redirect"
|
208 |
msgstr ""
|
209 |
|
210 |
-
#: models/redirect.php:
|
211 |
msgid "Invalid source URL when creating redirect for given match type"
|
212 |
msgstr ""
|
213 |
|
214 |
-
#: models/redirect.php:
|
215 |
msgid "Redirect to URL"
|
216 |
msgstr ""
|
217 |
|
218 |
-
#: models/redirect.php:
|
219 |
msgid "Redirect to random post"
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: models/redirect.php:
|
223 |
msgid "Pass-through"
|
224 |
msgstr ""
|
225 |
|
226 |
-
#: models/redirect.php:
|
227 |
msgid "Error (404)"
|
228 |
msgstr ""
|
229 |
|
230 |
-
#: models/redirect.php:
|
231 |
msgid "Do nothing"
|
232 |
msgstr ""
|
233 |
|
@@ -287,69 +287,69 @@ msgstr ""
|
|
287 |
msgid "For use with Nginx server. Requires manual configuration. The redirect happens without loading WordPress. No tracking of hits. This is an experimental module."
|
288 |
msgstr ""
|
289 |
|
290 |
-
#: modules/wordpress.php:
|
291 |
msgid "WordPress"
|
292 |
msgstr ""
|
293 |
|
294 |
-
#: modules/wordpress.php:
|
295 |
msgid "WordPress-powered redirects. This requires no further configuration, and you can track hits."
|
296 |
msgstr ""
|
297 |
|
298 |
-
#: redirection-admin.php:
|
299 |
msgid "Settings"
|
300 |
msgstr ""
|
301 |
|
302 |
-
#: redirection-admin.php:
|
303 |
msgid "Log entries"
|
304 |
msgstr ""
|
305 |
|
306 |
-
#: redirection-admin.php:
|
307 |
msgid "Redirection"
|
308 |
msgstr ""
|
309 |
|
310 |
-
#: redirection-admin.php:
|
311 |
msgid "Your options were updated"
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: redirection-admin.php:
|
315 |
msgid "Redirection data has been deleted and the plugin disabled"
|
316 |
msgstr ""
|
317 |
|
318 |
-
#: redirection-admin.php:
|
319 |
msgid "%d redirection was successfully imported"
|
320 |
msgid_plural "%d redirections were successfully imported"
|
321 |
msgstr[0] ""
|
322 |
msgstr[1] ""
|
323 |
|
324 |
-
#: redirection-admin.php:
|
325 |
msgid "No items were imported"
|
326 |
msgstr ""
|
327 |
|
328 |
-
#: redirection-admin.php:
|
329 |
msgid "Your logs have been deleted"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: redirection-admin.php:
|
333 |
msgid "Your group was added successfully"
|
334 |
msgstr ""
|
335 |
|
336 |
-
#: redirection-admin.php:
|
337 |
msgid "Please specify a group name"
|
338 |
msgstr ""
|
339 |
|
340 |
-
#: redirection-admin.php:
|
341 |
msgid "Sorry, but your redirection was not created"
|
342 |
msgstr ""
|
343 |
|
344 |
-
#: redirection-admin.php:
|
345 |
msgid "Invalid module"
|
346 |
msgstr ""
|
347 |
|
348 |
-
#: redirection-admin.php:
|
349 |
msgid "Download"
|
350 |
msgstr ""
|
351 |
|
352 |
-
#: redirection-admin.php:
|
353 |
msgid "Cancel"
|
354 |
msgstr ""
|
355 |
|
15 |
"X-Poedit-SearchPathExcluded-0: *.js\n"
|
16 |
"Plural-Forms: nplurals=2; plural=(n != 1);\n\n"
|
17 |
|
18 |
+
#: matches/login.php:7
|
19 |
msgid "URL and login status"
|
20 |
msgstr ""
|
21 |
|
22 |
+
#: matches/login.php:16
|
23 |
msgid "The target URL will be chosen from one of the following URLs, depending if the user is logged in or out. Leaving a URL blank means that the user is not redirected."
|
24 |
msgstr ""
|
25 |
|
26 |
+
#: matches/login.php:23, matches/login.php:25
|
27 |
msgid "Logged In"
|
28 |
msgstr ""
|
29 |
|
30 |
+
#: matches/login.php:35, matches/login.php:37
|
31 |
msgid "Logged Out"
|
32 |
msgstr ""
|
33 |
|
34 |
+
#: matches/referrer.php:8
|
35 |
msgid "URL and referrer"
|
36 |
msgstr ""
|
37 |
|
38 |
+
#: matches/referrer.php:21, models/pager.php:480, models/pager.php:611
|
39 |
msgid "Referrer"
|
40 |
msgstr ""
|
41 |
|
42 |
+
#: matches/referrer.php:24, view/item-edit.php:7
|
43 |
msgid "Regex"
|
44 |
msgstr ""
|
45 |
|
46 |
+
#: matches/referrer.php:28, matches/referrer.php:38, matches/url.php:20, matches/user-agent.php:38
|
47 |
msgid "HTTP Code"
|
48 |
msgstr ""
|
49 |
|
50 |
+
#: matches/referrer.php:46, matches/referrer.php:48, matches/user-agent.php:58, matches/user-agent.php:60
|
51 |
msgid "Matched"
|
52 |
msgstr ""
|
53 |
|
54 |
+
#: matches/referrer.php:56, matches/referrer.php:58, matches/user-agent.php:68, matches/user-agent.php:70
|
55 |
msgid "Not matched"
|
56 |
msgstr ""
|
57 |
|
58 |
+
#: matches/url.php:5
|
59 |
msgid "URL only"
|
60 |
msgstr ""
|
61 |
|
62 |
+
#: matches/url.php:12, view/add.php:32
|
63 |
msgid "Target URL"
|
64 |
msgstr ""
|
65 |
|
66 |
+
#: matches/user-agent.php:7
|
67 |
msgid "URL and user agent"
|
68 |
msgstr ""
|
69 |
|
70 |
+
#: matches/user-agent.php:12
|
71 |
msgid "FeedBurner"
|
72 |
msgstr ""
|
73 |
|
74 |
+
#: matches/user-agent.php:13
|
75 |
msgid "Internet Explorer"
|
76 |
msgstr ""
|
77 |
|
78 |
+
#: matches/user-agent.php:14
|
79 |
msgid "FireFox"
|
80 |
msgstr ""
|
81 |
|
82 |
+
#: matches/user-agent.php:15
|
83 |
msgid "Opera"
|
84 |
msgstr ""
|
85 |
|
86 |
+
#: matches/user-agent.php:16
|
87 |
msgid "Safari"
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: matches/user-agent.php:17
|
91 |
msgid "iPhone"
|
92 |
msgstr ""
|
93 |
|
94 |
+
#: matches/user-agent.php:18
|
95 |
msgid "iPad"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: matches/user-agent.php:19
|
99 |
msgid "Android"
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: matches/user-agent.php:20
|
103 |
msgid "Nintendo Wii"
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: matches/user-agent.php:25
|
107 |
msgid "User Agent"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: models/pager.php:28
|
111 |
msgid "Type"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: models/pager.php:29
|
115 |
msgid "URL"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: models/pager.php:30
|
119 |
msgid "Hits"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: models/pager.php:31
|
123 |
msgid "Last Access"
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: models/pager.php:53, models/pager.php:253
|
127 |
msgid "Edit"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: models/pager.php:54, models/pager.php:101, models/pager.php:254, models/pager.php:300, models/pager.php:498, models/pager.php:628, view/options.php:108
|
131 |
msgid "Delete"
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: models/pager.php:59, models/pager.php:103, models/pager.php:260, models/pager.php:302
|
135 |
msgid "Disable"
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: models/pager.php:61, models/pager.php:102, models/pager.php:262, models/pager.php:301
|
139 |
msgid "Enable"
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: models/pager.php:104
|
143 |
msgid "Reset Hits"
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: models/pager.php:151
|
147 |
msgid "No group filter"
|
148 |
msgstr ""
|
149 |
|
150 |
+
#: models/pager.php:243, view/group-edit.php:4, view/group-list.php:30
|
151 |
msgid "Name"
|
152 |
msgstr ""
|
153 |
|
154 |
+
#: models/pager.php:244, models/pager.php:710, view/submenu.php:6
|
155 |
msgid "Redirects"
|
156 |
msgstr ""
|
157 |
|
158 |
+
#: models/pager.php:245, models/pager.php:709, view/group-edit.php:8
|
159 |
msgid "Module"
|
160 |
msgstr ""
|
161 |
|
162 |
+
#: models/pager.php:255
|
163 |
msgid "View Redirects"
|
164 |
msgstr ""
|
165 |
|
166 |
+
#: models/pager.php:279
|
167 |
msgid "Unknown"
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: models/pager.php:356
|
171 |
msgid "All modules"
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: models/pager.php:441, models/pager.php:575
|
175 |
msgid "Add redirect"
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: models/pager.php:478, models/pager.php:609
|
179 |
msgid "Date"
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: models/pager.php:479, models/pager.php:610, view/add.php:13, view/item-edit.php:4
|
183 |
msgid "Source URL"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: models/pager.php:481, models/pager.php:612
|
187 |
msgid "IP"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: models/pager.php:581
|
191 |
msgid "Show only this IP"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: models/pager.php:720
|
195 |
msgid "Configure"
|
196 |
msgstr ""
|
197 |
|
198 |
+
#: models/redirect.php:160
|
199 |
msgid "Source and target URL must be different"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: models/redirect.php:166
|
203 |
msgid "You can only redirect from a relative URL (<code>%s</code>) on this domain (<code>%s</code>)."
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: models/redirect.php:174
|
207 |
msgid "Invalid group when creating redirect"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: models/redirect.php:177
|
211 |
msgid "Invalid source URL when creating redirect for given match type"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: models/redirect.php:394
|
215 |
msgid "Redirect to URL"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: models/redirect.php:395
|
219 |
msgid "Redirect to random post"
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: models/redirect.php:396
|
223 |
msgid "Pass-through"
|
224 |
msgstr ""
|
225 |
|
226 |
+
#: models/redirect.php:397
|
227 |
msgid "Error (404)"
|
228 |
msgstr ""
|
229 |
|
230 |
+
#: models/redirect.php:398
|
231 |
msgid "Do nothing"
|
232 |
msgstr ""
|
233 |
|
287 |
msgid "For use with Nginx server. Requires manual configuration. The redirect happens without loading WordPress. No tracking of hits. This is an experimental module."
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: modules/wordpress.php:133
|
291 |
msgid "WordPress"
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: modules/wordpress.php:137
|
295 |
msgid "WordPress-powered redirects. This requires no further configuration, and you can track hits."
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: redirection-admin.php:139
|
299 |
msgid "Settings"
|
300 |
msgstr ""
|
301 |
|
302 |
+
#: redirection-admin.php:151
|
303 |
msgid "Log entries"
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: redirection-admin.php:162, redirection-admin.php:162
|
307 |
msgid "Redirection"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: redirection-admin.php:229, redirection-admin.php:245
|
311 |
msgid "Your options were updated"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: redirection-admin.php:254
|
315 |
msgid "Redirection data has been deleted and the plugin disabled"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: redirection-admin.php:261
|
319 |
msgid "%d redirection was successfully imported"
|
320 |
msgid_plural "%d redirections were successfully imported"
|
321 |
msgstr[0] ""
|
322 |
msgstr[1] ""
|
323 |
|
324 |
+
#: redirection-admin.php:263
|
325 |
msgid "No items were imported"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: redirection-admin.php:275, redirection-admin.php:295
|
329 |
msgid "Your logs have been deleted"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: redirection-admin.php:309
|
333 |
msgid "Your group was added successfully"
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: redirection-admin.php:312
|
337 |
msgid "Please specify a group name"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: redirection-admin.php:488
|
341 |
msgid "Sorry, but your redirection was not created"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: redirection-admin.php:494
|
345 |
msgid "Invalid module"
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: redirection-admin.php:510
|
349 |
msgid "Download"
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: redirection-admin.php:511, view/group-edit.php:22, view/item-edit.php:33, view/module-edit.php:13
|
353 |
msgid "Cancel"
|
354 |
msgstr ""
|
355 |
|
matches/referrer.php
CHANGED
@@ -13,6 +13,7 @@ class Referrer_Match extends Red_Match {
|
|
13 |
301 => get_status_header_desc( 301 ),
|
14 |
302 => get_status_header_desc( 302 ),
|
15 |
307 => get_status_header_desc( 307 ),
|
|
|
16 |
);
|
17 |
|
18 |
?>
|
13 |
301 => get_status_header_desc( 301 ),
|
14 |
302 => get_status_header_desc( 302 ),
|
15 |
307 => get_status_header_desc( 307 ),
|
16 |
+
308 => get_status_header_desc( 308 ),
|
17 |
);
|
18 |
|
19 |
?>
|
models/database.php
CHANGED
@@ -94,7 +94,7 @@ class RE_Database {
|
|
94 |
}
|
95 |
|
96 |
// Groups
|
97 |
-
if ( $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->prefix}redirection_groups" ) === 0 ) {
|
98 |
$wpdb->insert( $wpdb->prefix.'redirection_groups', array( 'name' => __( 'Redirections' ), 'module_id' => 1, 'position' => 0 ) );
|
99 |
$wpdb->insert( $wpdb->prefix.'redirection_groups', array( 'name' => __( 'Modified Posts' ), 'module_id' => 1, 'position' => 1 ) );
|
100 |
|
94 |
}
|
95 |
|
96 |
// Groups
|
97 |
+
if ( intval( $wpdb->get_var( "SELECT COUNT(*) FROM {$wpdb->prefix}redirection_groups", 10 ) ) === 0 ) {
|
98 |
$wpdb->insert( $wpdb->prefix.'redirection_groups', array( 'name' => __( 'Redirections' ), 'module_id' => 1, 'position' => 0 ) );
|
99 |
$wpdb->insert( $wpdb->prefix.'redirection_groups', array( 'name' => __( 'Modified Posts' ), 'module_id' => 1, 'position' => 1 ) );
|
100 |
|
models/htaccess.php
CHANGED
@@ -110,10 +110,10 @@ class Red_Htaccess {
|
|
110 |
return sprintf( '%s [L]', $this->encode2nd( $data ), $code );
|
111 |
}
|
112 |
|
113 |
-
private function action_error( $data, $code, $regex) {
|
114 |
-
if ( $code ===
|
115 |
-
return '/ [G
|
116 |
-
return '/ [F
|
117 |
}
|
118 |
|
119 |
private function action_url( $data, $code, $regex ) {
|
110 |
return sprintf( '%s [L]', $this->encode2nd( $data ), $code );
|
111 |
}
|
112 |
|
113 |
+
private function action_error( $data, $code, $regex ) {
|
114 |
+
if ( $code === 410 )
|
115 |
+
return '/ [G]';
|
116 |
+
return '/ [F]';
|
117 |
}
|
118 |
|
119 |
private function action_url( $data, $code, $regex ) {
|
models/redirect.php
CHANGED
@@ -100,7 +100,7 @@ class Red_Item {
|
|
100 |
if ( $first['position'] === $second['position'] )
|
101 |
return 0;
|
102 |
|
103 |
-
return $first['position'] < $second['position'];
|
104 |
}
|
105 |
|
106 |
static function reduce_sorted_items( $item ) {
|
@@ -176,7 +176,7 @@ class Red_Item {
|
|
176 |
if ( ! $matcher )
|
177 |
return new WP_Error( 'redirect-add', __( 'Invalid source URL when creating redirect for given match type', 'redirection' ) );
|
178 |
|
179 |
-
$regex = ( isset( $details['regex'] ) && $details['regex'] !== false ) ? 1 : 0;
|
180 |
$position = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}redirection_items WHERE group_id=%d", $group_id ) );
|
181 |
|
182 |
$action = $details['red_action'];
|
100 |
if ( $first['position'] === $second['position'] )
|
101 |
return 0;
|
102 |
|
103 |
+
return ($first['position'] < $second['position']) ? -1 : 1;
|
104 |
}
|
105 |
|
106 |
static function reduce_sorted_items( $item ) {
|
176 |
if ( ! $matcher )
|
177 |
return new WP_Error( 'redirect-add', __( 'Invalid source URL when creating redirect for given match type', 'redirection' ) );
|
178 |
|
179 |
+
$regex = ( isset( $details['regex'] ) && (bool) $details['regex'] !== false ) ? 1 : 0;
|
180 |
$position = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM {$wpdb->prefix}redirection_items WHERE group_id=%d", $group_id ) );
|
181 |
|
182 |
$action = $details['red_action'];
|
modules/wordpress.php
CHANGED
@@ -102,7 +102,12 @@ class WordPress_Module extends Red_Module {
|
|
102 |
}
|
103 |
}
|
104 |
}
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
106 |
status_header( $status );
|
107 |
return $url;
|
108 |
}
|
102 |
}
|
103 |
}
|
104 |
}
|
105 |
+
elseif ( $status == 307) {
|
106 |
+
status_header( $status );
|
107 |
+
header( "Cache-Control: no-cache, must-revalidate, max-age=0" );
|
108 |
+
header( "Expires: Sat, 26 Jul 1997 05:00:00 GMT" );
|
109 |
+
return $url;
|
110 |
+
}
|
111 |
status_header( $status );
|
112 |
return $url;
|
113 |
}
|
readme.txt
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
Contributors: johnny5
|
3 |
Donate link: http://urbangiraffe.com/about/
|
4 |
Tags: post, admin, seo, pages, manage, 301, 404, redirect, permalink
|
5 |
-
Requires at least: 4.
|
6 |
-
Tested up to: 4.
|
7 |
-
Stable tag: 2.
|
8 |
|
9 |
Redirection is a WordPress plugin to manage 301 redirections and keep track of 404 errors without requiring knowledge of Apache .htaccess files.
|
10 |
|
@@ -97,6 +97,15 @@ The plugin works in a similar manner to how WordPress handles permalinks and sho
|
|
97 |
|
98 |
== Changelog ==
|
99 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
= 2.4.5 =
|
101 |
* Ensure cleanup code runs even if plugin was updated
|
102 |
* Extra sanitization of Apache & Nginx files, props to Ed Shirey
|
2 |
Contributors: johnny5
|
3 |
Donate link: http://urbangiraffe.com/about/
|
4 |
Tags: post, admin, seo, pages, manage, 301, 404, redirect, permalink
|
5 |
+
Requires at least: 4.2
|
6 |
+
Tested up to: 4.7
|
7 |
+
Stable tag: 2.5
|
8 |
|
9 |
Redirection is a WordPress plugin to manage 301 redirections and keep track of 404 errors without requiring knowledge of Apache .htaccess files.
|
10 |
|
97 |
|
98 |
== Changelog ==
|
99 |
|
100 |
+
= 2.5 =
|
101 |
+
* Fix no group created on install
|
102 |
+
* Fix missing export key on install
|
103 |
+
* Add 408 HTTP code, props to radenui
|
104 |
+
* Fix imported URLs set to regex, props to alpipego
|
105 |
+
* Fix sorting of URLs, props to JordanReiter
|
106 |
+
* Don't cache 407s, props to rmarchant
|
107 |
+
* Abort redirect exit if no redirection happened, props to junc
|
108 |
+
|
109 |
= 2.4.5 =
|
110 |
* Ensure cleanup code runs even if plugin was updated
|
111 |
* Extra sanitization of Apache & Nginx files, props to Ed Shirey
|
redirection-admin.php
CHANGED
@@ -46,6 +46,8 @@ class Redirection_Admin {
|
|
46 |
public static function plugin_activated() {
|
47 |
Redirection_Admin::update();
|
48 |
Red_Flusher::schedule();
|
|
|
|
|
49 |
}
|
50 |
|
51 |
public static function plugin_deactivated() {
|
@@ -57,6 +59,8 @@ class Redirection_Admin {
|
|
57 |
|
58 |
$db = new RE_Database();
|
59 |
$db->remove( REDIRECTION_FILE );
|
|
|
|
|
60 |
}
|
61 |
|
62 |
private function render( $template, $template_vars = array() ) {
|
46 |
public static function plugin_activated() {
|
47 |
Redirection_Admin::update();
|
48 |
Red_Flusher::schedule();
|
49 |
+
|
50 |
+
update_option( 'redirection_options', red_get_options() );
|
51 |
}
|
52 |
|
53 |
public static function plugin_deactivated() {
|
59 |
|
60 |
$db = new RE_Database();
|
61 |
$db->remove( REDIRECTION_FILE );
|
62 |
+
|
63 |
+
delete_option( 'redirection_options' );
|
64 |
}
|
65 |
|
66 |
private function render( $template, $template_vars = array() ) {
|
redirection.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
Plugin Name: Redirection
|
4 |
Plugin URI: http://urbangiraffe.com/plugins/redirection/
|
5 |
Description: Manage all your 301 redirects and monitor 404 errors
|
6 |
-
Version: 2.
|
7 |
Author: John Godley
|
8 |
Author URI: http://urbangiraffe.com
|
9 |
Text Domain: redirection
|
3 |
Plugin Name: Redirection
|
4 |
Plugin URI: http://urbangiraffe.com/plugins/redirection/
|
5 |
Description: Manage all your 301 redirects and monitor 404 errors
|
6 |
+
Version: 2.5
|
7 |
Author: John Godley
|
8 |
Author URI: http://urbangiraffe.com
|
9 |
Text Domain: redirection
|
view/item-list.php
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
<div class="wrap">
|
3 |
<?php screen_icon(); ?>
|
4 |
|
5 |
-
<h2><?php _e( 'Redirections', 'redirection' );
|
6 |
|
7 |
<?php $this->render( 'submenu', array( 'options' => $options ) ); ?>
|
8 |
|
2 |
<div class="wrap">
|
3 |
<?php screen_icon(); ?>
|
4 |
|
5 |
+
<h2><?php _e( 'Redirections', 'redirection' ); ?></h2>
|
6 |
|
7 |
<?php $this->render( 'submenu', array( 'options' => $options ) ); ?>
|
8 |
|